Code drop from //branches/cupcake/...@124589
@@ -1,7 +1,7 @@
|
||||
LOCAL_PATH:= $(call my-dir)
|
||||
include $(CLEAR_VARS)
|
||||
|
||||
LOCAL_MODULE_TAGS := user
|
||||
LOCAL_MODULE_TAGS := user development
|
||||
|
||||
LOCAL_SRC_FILES := $(call all-java-files-under, src)
|
||||
|
||||
|
@@ -5,9 +5,11 @@
|
||||
<uses-permission android:name="com.google.android.providers.gmail.permission.WRITE_GMAIL" />
|
||||
<uses-permission android:name="com.google.android.providers.gmail.permission.READ_GMAIL" />
|
||||
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
|
||||
<uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" />
|
||||
<uses-permission android:name="android.permission.CHANGE_CONFIGURATION" />
|
||||
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
|
||||
<uses-permission android:name="android.permission.VIBRATE" />
|
||||
<uses-permission android:name="android.permission.BLUETOOTH" />
|
||||
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
|
||||
<uses-permission android:name="android.permission.HARDWARE_TEST" />
|
||||
<uses-permission android:name="android.permission.CALL_PHONE" />
|
||||
@@ -51,7 +53,9 @@
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.MAIN" />
|
||||
<action android:name="android.settings.WIRELESS_SETTINGS" />
|
||||
<action android:name="android.settings.AIRPLANE_MODE_SETTINGS" />
|
||||
<category android:name="android.intent.category.DEFAULT" />
|
||||
<category android:name="android.intent.category.VOICE_LAUNCH" />
|
||||
</intent-filter>
|
||||
</activity>
|
||||
|
||||
@@ -65,6 +69,7 @@
|
||||
<action android:name="android.settings.WIFI_SETTINGS" />
|
||||
<action android:name="android.net.wifi.PICK_WIFI_NETWORK" />
|
||||
<category android:name="android.intent.category.DEFAULT" />
|
||||
<category android:name="android.intent.category.VOICE_LAUNCH" />
|
||||
</intent-filter>
|
||||
</activity>
|
||||
|
||||
@@ -72,6 +77,8 @@
|
||||
android:theme="@android:style/Theme.NoTitleBar">
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.MAIN" />
|
||||
<action android:name="android.settings.WIFI_IP_SETTINGS" />
|
||||
<category android:name="android.intent.category.VOICE_LAUNCH" />
|
||||
</intent-filter>
|
||||
</activity>
|
||||
|
||||
@@ -81,16 +88,17 @@
|
||||
<action android:name="android.intent.action.MAIN" />
|
||||
<action android:name="android.settings.APN_SETTINGS" />
|
||||
<category android:name="android.intent.category.DEFAULT" />
|
||||
<category android:name="android.intent.category.VOICE_LAUNCH" />
|
||||
</intent-filter>
|
||||
</activity>
|
||||
|
||||
<activity android:name="BluetoothSettings"
|
||||
<activity android:name=".bluetooth.BluetoothSettings"
|
||||
android:label="@string/bluetooth_settings_title"
|
||||
android:configChanges="keyboardHidden|orientation"
|
||||
android:theme="@android:style/Theme.NoTitleBar">
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.MAIN" />
|
||||
<action android:name="android.settings.BLUETOOTH_SETTINGS" />
|
||||
<category android:name="android.intent.category.VOICE_LAUNCH" />
|
||||
</intent-filter>
|
||||
</activity>
|
||||
|
||||
@@ -99,6 +107,7 @@
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.MAIN" />
|
||||
<action android:name="android.settings.DATE_SETTINGS" />
|
||||
<category android:name="android.intent.category.VOICE_LAUNCH" />
|
||||
</intent-filter>
|
||||
</activity>
|
||||
|
||||
@@ -114,6 +123,7 @@
|
||||
<action android:name="android.intent.action.MAIN" />
|
||||
<action android:name="android.settings.LOCALE_SETTINGS" />
|
||||
<category android:name="android.intent.category.DEFAULT" />
|
||||
<category android:name="android.intent.category.VOICE_LAUNCH" />
|
||||
</intent-filter>
|
||||
</activity>
|
||||
|
||||
@@ -131,6 +141,15 @@
|
||||
</intent-filter>
|
||||
</activity>
|
||||
|
||||
<activity android:name="InputMethodsSettings" android:icon="@drawable/app_settings"
|
||||
android:label="@string/input_methods_settings_title"
|
||||
android:theme="@android:style/Theme.NoTitleBar">
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.MAIN" />
|
||||
<category android:name="android.intent.category.VOICE_LAUNCH" />
|
||||
</intent-filter>
|
||||
</activity>
|
||||
|
||||
<activity android:name="SoundAndDisplaySettings" android:label="@string/sound_and_display_settings"
|
||||
android:theme="@android:style/Theme.NoTitleBar">
|
||||
<intent-filter>
|
||||
@@ -138,6 +157,7 @@
|
||||
<action android:name="com.android.settings.SOUND_SETTINGS" />
|
||||
<action android:name="com.android.settings.DISPLAY_SETTINGS" />
|
||||
<category android:name="android.intent.category.DEFAULT" />
|
||||
<category android:name="android.intent.category.VOICE_LAUNCH" />
|
||||
</intent-filter>
|
||||
</activity>
|
||||
|
||||
@@ -146,6 +166,7 @@
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.MAIN" />
|
||||
<category android:name="android.intent.category.DEFAULT" />
|
||||
<category android:name="android.intent.category.VOICE_LAUNCH" />
|
||||
</intent-filter>
|
||||
</activity>
|
||||
|
||||
@@ -164,6 +185,7 @@
|
||||
<action android:name="android.intent.action.MAIN" />
|
||||
<action android:name="android.settings.APPLICATION_SETTINGS" />
|
||||
<category android:name="android.intent.category.DEFAULT" />
|
||||
<category android:name="android.intent.category.VOICE_LAUNCH" />
|
||||
</intent-filter>
|
||||
</activity>
|
||||
|
||||
@@ -171,8 +193,10 @@
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.MAIN" />
|
||||
<action android:name="android.intent.action.MANAGE_PACKAGE_STORAGE" />
|
||||
<action android:name="android.settings.MANAGE_APPLICATIONS_SETTINGS" />
|
||||
<category android:name="android.intent.category.DEFAULT" />
|
||||
<category android:name="android.intent.category.MONKEY" />
|
||||
<category android:name="android.intent.category.VOICE_LAUNCH" />
|
||||
</intent-filter>
|
||||
</activity>
|
||||
|
||||
@@ -180,6 +204,7 @@
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.VIEW" />
|
||||
<category android:name="android.intent.category.DEFAULT" />
|
||||
<category android:name="android.intent.category.VOICE_LAUNCH" />
|
||||
</intent-filter>
|
||||
</activity>
|
||||
|
||||
@@ -190,6 +215,7 @@
|
||||
<action android:name="android.settings.SECURITY_SETTINGS" />
|
||||
<action android:name="android.settings.LOCATION_SOURCE_SETTINGS" />
|
||||
<category android:name="android.intent.category.DEFAULT" />
|
||||
<category android:name="android.intent.category.VOICE_LAUNCH" />
|
||||
</intent-filter>
|
||||
</activity>
|
||||
|
||||
@@ -199,6 +225,7 @@
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.MAIN" />
|
||||
<category android:name="android.intent.category.DEFAULT" />
|
||||
<category android:name="android.intent.category.VOICE_LAUNCH" />
|
||||
</intent-filter>
|
||||
</activity>
|
||||
|
||||
@@ -233,12 +260,13 @@
|
||||
|
||||
<activity android:name="ZoneList" android:label="@string/choose_timezone" />
|
||||
|
||||
<activity android:name=".deviceinfo.Status" android:label="@string/device_status"
|
||||
<activity android:name=".deviceinfo.Status" android:label="@string/device_status_activity_title"
|
||||
android:process="com.android.phone"
|
||||
android:theme="@android:style/Theme.NoTitleBar">
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.MAIN" />
|
||||
<category android:name="android.intent.category.DEFAULT" />
|
||||
<category android:name="android.intent.category.VOICE_LAUNCH" />
|
||||
</intent-filter>
|
||||
</activity>
|
||||
|
||||
@@ -246,7 +274,10 @@
|
||||
android:theme="@android:style/Theme.NoTitleBar">
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.MAIN" />
|
||||
<action android:name="android.settings.INTERNAL_STORAGE_SETTINGS" />
|
||||
<action android:name="android.settings.MEMORY_CARD_SETTINGS" />
|
||||
<category android:name="android.intent.category.DEFAULT" />
|
||||
<category android:name="android.intent.category.VOICE_LAUNCH" />
|
||||
</intent-filter>
|
||||
</activity>
|
||||
|
||||
@@ -275,12 +306,15 @@
|
||||
android:theme="@android:style/Theme.NoTitleBar">
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.MAIN" />
|
||||
<action android:name="com.android.settings.QUICK_LAUNCH_SETTINGS" />
|
||||
<category android:name="android.intent.category.VOICE_LAUNCH" />
|
||||
</intent-filter>
|
||||
</activity>
|
||||
|
||||
<activity android:name=".quicklaunch.BookmarkPicker" android:label="@string/quick_launch_title">
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.MAIN" />
|
||||
<category android:name="android.intent.category.VOICE_LAUNCH" />
|
||||
</intent-filter>
|
||||
</activity>
|
||||
|
||||
@@ -289,6 +323,7 @@
|
||||
android:theme="@android:style/Theme.NoTitleBar">
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.MAIN" />
|
||||
<action android:name="com.android.settings.APPLICATION_DEVELOPMENT_SETTINGS" />
|
||||
</intent-filter>
|
||||
</activity>
|
||||
|
||||
@@ -308,22 +343,26 @@
|
||||
</intent-filter>
|
||||
</receiver>
|
||||
|
||||
<activity android:name="BluetoothPINEntry"
|
||||
android:label="@string/bluetooth_pin_entry"
|
||||
android:theme="@android:style/Theme.Dialog">
|
||||
<!--intent-filter>
|
||||
<action android:name="android.bluetooth.intent.action.PAIRING_REQUEST" />
|
||||
<category android:name="android.intent.category.DEFAULT" />
|
||||
</intent-filter-->
|
||||
</activity>
|
||||
<!-- Bluetooth stuff -->
|
||||
|
||||
<!-- Ignore Bluetooth Pairing Requests when not in BluetoothSettings
|
||||
<receiver android:name="BluetoothPinRequest">
|
||||
<activity android:name=".bluetooth.ConnectSpecificProfilesActivity"
|
||||
android:label="@string/bluetooth_connect_specific_profiles_title" />
|
||||
|
||||
<activity android:name=".bluetooth.BluetoothPinDialog"
|
||||
android:label="@string/bluetooth_pin_entry"
|
||||
android:theme="@*android:style/Theme.Dialog.Alert">
|
||||
<intent-filter>
|
||||
<action android:name="android.bluetooth.intent.action.PAIRING_REQUEST" />
|
||||
<category android:name="android.intent.category.DEFAULT" />
|
||||
</intent-filter>
|
||||
</activity>
|
||||
|
||||
<receiver android:name=".bluetooth.BluetoothPinRequest">
|
||||
<intent-filter>
|
||||
<action android:name="android.bluetooth.intent.action.PAIRING_REQUEST" />
|
||||
<action android:name="android.bluetooth.intent.action.PAIRING_CANCEL" />
|
||||
</intent-filter>
|
||||
</receiver>
|
||||
-->
|
||||
|
||||
<activity android:name="ActivityPicker" android:label="@string/activity_picker_label">
|
||||
<intent-filter>
|
||||
@@ -349,6 +388,7 @@
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.MAIN" />
|
||||
<category android:name="android.intent.category.DEVELOPMENT_PREFERENCE" />
|
||||
<category android:name="android.intent.category.VOICE_LAUNCH" />
|
||||
</intent-filter>
|
||||
</activity>
|
||||
|
||||
@@ -363,6 +403,7 @@
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.MAIN" />
|
||||
<category android:name="android.intent.category.DEVELOPMENT_PREFERENCE" />
|
||||
<category android:name="android.intent.category.VOICE_LAUNCH" />
|
||||
</intent-filter>
|
||||
</activity>
|
||||
|
||||
@@ -386,6 +427,7 @@
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.MAIN" />
|
||||
<category android:name="android.intent.category.DEVELOPMENT_PREFERENCE" />
|
||||
<category android:name="android.intent.category.VOICE_LAUNCH" />
|
||||
</intent-filter>
|
||||
</activity>
|
||||
|
||||
@@ -394,6 +436,7 @@
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.MAIN" />
|
||||
<category android:name="android.intent.category.DEVELOPMENT_PREFERENCE" />
|
||||
<category android:name="android.intent.category.VOICE_LAUNCH" />
|
||||
</intent-filter>
|
||||
</activity>
|
||||
|
||||
@@ -404,6 +447,7 @@
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.MAIN" />
|
||||
<category android:name="android.intent.category.DEFAULT" />
|
||||
<category android:name="android.intent.category.VOICE_LAUNCH" />
|
||||
</intent-filter>
|
||||
</activity>
|
||||
|
||||
|
BIN
res/drawable/border_item_thumbnail.png
Executable file
After Width: | Height: | Size: 230 B |
Before Width: | Height: | Size: 1.5 KiB |
Before Width: | Height: | Size: 1.8 KiB |
Before Width: | Height: | Size: 1.8 KiB |
Before Width: | Height: | Size: 1.7 KiB |
BIN
res/drawable/ic_bt_cellphone.png
Executable file
After Width: | Height: | Size: 810 B |
BIN
res/drawable/ic_bt_headphones_a2dp.png
Executable file
After Width: | Height: | Size: 742 B |
BIN
res/drawable/ic_bt_headset_hfp.png
Normal file
After Width: | Height: | Size: 737 B |
BIN
res/drawable/ic_bt_laptop.png
Executable file
After Width: | Height: | Size: 3.2 KiB |
Before Width: | Height: | Size: 867 B |
Before Width: | Height: | Size: 2.2 KiB |
Before Width: | Height: | Size: 1.5 KiB |
Before Width: | Height: | Size: 1.3 KiB |
@@ -16,12 +16,34 @@
|
||||
** limitations under the License.
|
||||
*/
|
||||
-->
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_height="wrap_content"
|
||||
|
||||
<ScrollView
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_height="fill_parent"
|
||||
android:layout_width="fill_parent">
|
||||
<EditText android:id="@+id/text"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_marginLeft="20dip"
|
||||
android:layout_marginRight="20dip" />
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_height="fill_parent"
|
||||
android:layout_width="fill_parent"
|
||||
android:orientation="vertical">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/message"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:gravity="center_horizontal"
|
||||
android:textAppearance="?android:attr/textAppearanceMedium" />
|
||||
|
||||
<EditText
|
||||
android:id="@+id/text"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_marginTop="20dip"
|
||||
android:layout_marginLeft="20dip"
|
||||
android:layout_marginRight="20dip"
|
||||
android:singleLine="true" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
</ScrollView>
|
@@ -14,25 +14,25 @@
|
||||
limitations under the License.
|
||||
-->
|
||||
|
||||
<RelativeLayout
|
||||
<LinearLayout
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="fill_parent">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/center_text"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_centerVertical="true"
|
||||
android:textSize="18sp"
|
||||
android:textStyle="bold"
|
||||
android:padding="2dip"
|
||||
android:text="@string/computing_size"/>
|
||||
<ListView
|
||||
android:id="@android:id/list"
|
||||
android:layout_weight="1"
|
||||
android:drawSelectorOnTop="false"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="fill_parent">
|
||||
</ListView>
|
||||
</RelativeLayout>
|
||||
<TextView android:id="@android:id/empty"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:paddingLeft="20dip"
|
||||
android:paddingTop="5dip"
|
||||
android:text="@string/empty_list_msg"
|
||||
android:textSize="15sp" />
|
||||
</LinearLayout>
|
||||
|
||||
|
||||
|
@@ -62,13 +62,7 @@
|
||||
|
||||
<TextView
|
||||
style="?android:attr/listSeparatorTextViewStyle"
|
||||
android:text="@string/storage_label"
|
||||
android:background="@*android:drawable/settings_header"
|
||||
android:textSize="18sp"
|
||||
android:paddingTop="6dip"
|
||||
android:paddingLeft="6dip"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content" />
|
||||
android:text="@string/storage_label" />
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="fill_parent"
|
||||
@@ -84,8 +78,7 @@
|
||||
<TextView
|
||||
android:id="@+id/total_size_prefix"
|
||||
android:text="@string/total_size_label"
|
||||
android:textColor="?android:attr/textColorPrimary"
|
||||
android:textSize="18sp"
|
||||
android:textAppearance="?android:attr/textAppearanceMedium"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_width="wrap_content"
|
||||
android:maxLines="1"
|
||||
@@ -105,10 +98,9 @@
|
||||
android:scaleType="center" />
|
||||
<TextView
|
||||
android:id="@+id/total_size_text"
|
||||
android:textSize="18sp"
|
||||
android:paddingTop="6dip"
|
||||
android:paddingRight="6dip"
|
||||
android:textColor="?android:attr/textColorPrimary"
|
||||
android:textAppearance="?android:attr/textAppearanceMedium"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_width="wrap_content"
|
||||
android:maxLines="1" />
|
||||
@@ -123,8 +115,7 @@
|
||||
<TextView
|
||||
android:id="@+id/application_size_prefix"
|
||||
android:text="@string/application_size_label"
|
||||
android:textColor="?android:attr/textColorPrimary"
|
||||
android:textSize="18sp"
|
||||
android:textAppearance="?android:attr/textAppearanceMedium"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_width="wrap_content"
|
||||
android:maxLines="1"
|
||||
@@ -143,10 +134,9 @@
|
||||
android:scaleType="center" />
|
||||
<TextView
|
||||
android:id="@+id/application_size_text"
|
||||
android:textSize="18sp"
|
||||
android:textAppearance="?android:attr/textAppearanceMedium"
|
||||
android:paddingTop="6dip"
|
||||
android:paddingRight="6dip"
|
||||
android:textColor="?android:attr/textColorPrimary"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_width="wrap_content"
|
||||
android:maxLines="1" />
|
||||
@@ -162,8 +152,7 @@
|
||||
<TextView
|
||||
android:id="@+id/data_size_prefix"
|
||||
android:text="@string/data_size_label"
|
||||
android:textColor="?android:attr/textColorPrimary"
|
||||
android:textSize="18sp"
|
||||
android:textAppearance="?android:attr/textAppearanceMedium"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_width="wrap_content"
|
||||
android:maxLines="1"
|
||||
@@ -182,10 +171,9 @@
|
||||
android:scaleType="center" />
|
||||
<TextView
|
||||
android:id="@+id/data_size_text"
|
||||
android:textSize="18sp"
|
||||
android:textAppearance="?android:attr/textAppearanceMedium"
|
||||
android:paddingTop="6dip"
|
||||
android:paddingRight="6dip"
|
||||
android:textColor="?android:attr/textColorPrimary"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_width="wrap_content"
|
||||
android:maxLines="1" />
|
||||
@@ -223,20 +211,73 @@
|
||||
android:layout_height="wrap_content"/>
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
|
||||
<!-- Clear cache section -->
|
||||
<RelativeLayout
|
||||
android:id="@+id/cache_panel"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content" >
|
||||
<TextView
|
||||
android:id="@+id/cache_header"
|
||||
style="?android:attr/listSeparatorTextViewStyle"
|
||||
android:text="@string/cache_header_label" />
|
||||
<LinearLayout
|
||||
android:id="@+id/cache_size"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal"
|
||||
android:baselineAligned="true"
|
||||
android:layout_below="@id/cache_header"
|
||||
android:paddingTop="-1dip">
|
||||
<TextView
|
||||
android:text="@string/cache_size_label"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_width="wrap_content"
|
||||
android:maxLines="1"
|
||||
android:textAppearance="?android:attr/textAppearanceMedium"
|
||||
android:paddingTop="6dip"
|
||||
android:gravity="center_vertical"
|
||||
android:paddingLeft="6dip"/>
|
||||
<ImageView
|
||||
android:src="@drawable/dotted_line_480px"
|
||||
android:layout_width="0dip"
|
||||
android:layout_weight="1"
|
||||
android:layout_height="1px"
|
||||
android:layout_gravity="bottom"
|
||||
android:layout_marginLeft="1dip"
|
||||
android:layout_marginRight="1dip"
|
||||
android:layout_marginBottom="4dip"
|
||||
android:scaleType="center" />
|
||||
<TextView
|
||||
android:id="@+id/cache_size_text"
|
||||
android:textAppearance="?android:attr/textAppearanceMedium"
|
||||
android:paddingTop="6dip"
|
||||
android:paddingRight="6dip"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_width="wrap_content"
|
||||
android:maxLines="1" />
|
||||
</LinearLayout>
|
||||
|
||||
<Button android:id="@+id/clear_cache_button"
|
||||
android:layout_alignParentRight="true"
|
||||
android:layout_below="@id/cache_size"
|
||||
android:layout_centerHorizontal="true"
|
||||
android:layout_width="150dip"
|
||||
android:text="@string/clear_cache_btn_text"
|
||||
android:layout_height="wrap_content" />
|
||||
</RelativeLayout>
|
||||
|
||||
<!-- Prefered activities section -->
|
||||
<TextView
|
||||
style="?android:attr/listSeparatorTextViewStyle"
|
||||
android:text="@string/auto_launch_label"
|
||||
android:background="@*android:drawable/settings_header"
|
||||
android:paddingTop="6dip"
|
||||
android:paddingLeft="6dip"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content" />
|
||||
android:text="@string/auto_launch_label" />
|
||||
|
||||
<RelativeLayout
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical">
|
||||
<TextView android:id="@+id/auto_launch"
|
||||
android:textAppearance="?android:attr/textAppearanceSmall"
|
||||
android:layout_alignParentLeft="true"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content"
|
||||
@@ -251,29 +292,30 @@
|
||||
android:text="@string/clear_activities"
|
||||
android:layout_height="wrap_content" />
|
||||
</RelativeLayout>
|
||||
|
||||
<!-- Permissions section -->
|
||||
<TextView
|
||||
style="?android:attr/listSeparatorTextViewStyle"
|
||||
android:text="@string/permissions_label"
|
||||
android:background="@*android:drawable/settings_header"
|
||||
android:textSize="18sp"
|
||||
android:paddingTop="6dip"
|
||||
android:paddingLeft="6dip"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content" />
|
||||
<TextView
|
||||
android:text="@string/security_settings_desc"
|
||||
android:textSize="14sp"
|
||||
android:paddingTop="6dip"
|
||||
android:paddingLeft="6dip"
|
||||
android:paddingBottom="6dip"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content" />
|
||||
<LinearLayout
|
||||
android:id="@+id/security_settings_list"
|
||||
<LinearLayout
|
||||
android:id="@+id/permissions_section"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="fill_parent"
|
||||
android:orientation="vertical"/>
|
||||
android:orientation="vertical">
|
||||
<TextView
|
||||
style="?android:attr/listSeparatorTextViewStyle"
|
||||
android:text="@string/permissions_label" />
|
||||
<TextView
|
||||
android:text="@string/security_settings_desc"
|
||||
android:textAppearance="?android:attr/textAppearanceSmall"
|
||||
android:paddingTop="6dip"
|
||||
android:paddingLeft="6dip"
|
||||
android:paddingBottom="6dip"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content" />
|
||||
<LinearLayout
|
||||
android:id="@+id/security_settings_list"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="fill_parent"
|
||||
android:orientation="vertical"/>
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
</ScrollView>
|
||||
|
||||
|
@@ -27,10 +27,19 @@
|
||||
android:layout_width="@android:dimen/app_icon_size"
|
||||
android:layout_height="@android:dimen/app_icon_size"
|
||||
android:layout_alignParentLeft="true"
|
||||
android:paddingLeft="6dip"
|
||||
android:paddingTop="6dip"
|
||||
android:paddingBottom="6dip"
|
||||
android:scaleType="fitCenter" />
|
||||
android:layout_marginTop="6dip"
|
||||
android:layout_marginBottom="6dip"
|
||||
android:background="@drawable/border_item_thumbnail" />
|
||||
|
||||
<TextView android:id="@+id/app_size"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textAppearance="?android:attr/textAppearanceMedium"
|
||||
android:layout_alignParentRight="true"
|
||||
android:paddingRight="6dip"
|
||||
android:paddingLeft="12dip"
|
||||
android:paddingTop="16dip"
|
||||
android:maxLines="1" />
|
||||
|
||||
<TextView android:id="@+id/app_name"
|
||||
android:layout_width="wrap_content"
|
||||
@@ -38,25 +47,9 @@
|
||||
android:textAppearance="?android:attr/textAppearanceLarge"
|
||||
android:textColor="?android:attr/textColorPrimary"
|
||||
android:layout_toRightOf="@id/app_icon"
|
||||
android:paddingLeft="6dip"
|
||||
android:layout_toLeftOf="@id/app_size"
|
||||
android:layout_alignTop="@id/app_icon"
|
||||
android:paddingLeft="2dip"
|
||||
android:paddingTop="6dip"/>
|
||||
|
||||
<TextView android:id="@+id/app_description"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textAppearance="?android:attr/textAppearanceSmall"
|
||||
android:layout_below="@+id/app_name"
|
||||
android:layout_toRightOf="@id/app_icon"
|
||||
android:paddingLeft="6dip"
|
||||
android:paddingBottom="6dip"/>
|
||||
<TextView android:id="@+id/app_size"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textAppearance="?android:attr/textAppearanceSmall"
|
||||
android:layout_alignParentRight="true"
|
||||
android:layout_below="@+id/app_name"
|
||||
android:paddingRight="6dip"
|
||||
android:maxLines="1" />
|
||||
|
||||
</RelativeLayout>
|
||||
|
||||
|
56
res/layout/preference_bluetooth.xml
Normal file
@@ -0,0 +1,56 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Copyright (C) 2006 The Android Open Source Project
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
-->
|
||||
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:minHeight="?android:attr/listPreferredItemHeight"
|
||||
android:gravity="center_vertical"
|
||||
android:paddingLeft="16dip"
|
||||
android:paddingRight="?android:attr/scrollbarSize">
|
||||
|
||||
<RelativeLayout
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginRight="6dip"
|
||||
android:layout_marginTop="6dip"
|
||||
android:layout_marginBottom="6dip"
|
||||
android:layout_weight="1">
|
||||
|
||||
<TextView android:id="@+android:id/title"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:singleLine="true"
|
||||
android:textAppearance="?android:attr/textAppearanceLarge" />
|
||||
|
||||
<TextView android:id="@+android:id/summary"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_below="@android:id/title"
|
||||
android:layout_alignLeft="@android:id/title"
|
||||
android:textAppearance="?android:attr/textAppearanceSmall"
|
||||
android:maxLines="2" />
|
||||
|
||||
</RelativeLayout>
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/btClass"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginRight="12dip"
|
||||
android:layout_gravity="center_vertical" />
|
||||
|
||||
</LinearLayout>
|
71
res/layout/preference_dialog_ringervolume.xml
Normal file
@@ -0,0 +1,71 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Copyright (C) 2008 The Android Open Source Project
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
-->
|
||||
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="fill_parent"
|
||||
android:orientation="vertical"
|
||||
android:gravity="center_horizontal"
|
||||
android:paddingBottom="20dip">
|
||||
|
||||
<ImageView android:id="@android:id/icon"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:paddingTop="20dip" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/incoming_call_volume_title"
|
||||
android:paddingTop="20dip"
|
||||
android:paddingLeft="20dip"
|
||||
android:paddingRight="20dip" />
|
||||
|
||||
<!-- Used for the ring volume. This is what the superclass VolumePreference uses. -->
|
||||
<SeekBar android:id="@*android:id/seekbar"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:paddingTop="6dip"
|
||||
android:paddingLeft="20dip"
|
||||
android:paddingRight="20dip" />
|
||||
|
||||
<CheckBox android:id="@+id/same_notification_volume"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/checkbox_notification_same_as_incoming_call"
|
||||
android:textAppearance="?android:attr/textAppearanceSmall"
|
||||
android:layout_marginTop="6dip"
|
||||
android:layout_marginLeft="20dip"
|
||||
android:layout_marginRight="20dip" />
|
||||
|
||||
<TextView android:id="@+id/notification_volume_title"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/notification_volume_title"
|
||||
android:paddingTop="6dip"
|
||||
android:paddingLeft="20dip"
|
||||
android:paddingRight="20dip" />
|
||||
|
||||
<!-- Used for the notification volume -->
|
||||
<SeekBar android:id="@+id/notification_volume_seekbar"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:paddingTop="6dip"
|
||||
android:paddingLeft="20dip"
|
||||
android:paddingRight="20dip" />
|
||||
|
||||
</LinearLayout>
|
||||
|
@@ -32,7 +32,7 @@
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignParentRight="true"
|
||||
android:layout_centerVertical="true"
|
||||
android:layout_marginRight="5sp"
|
||||
android:layout_marginRight="?android:attr/scrollbarSize"
|
||||
style="?android:attr/progressBarStyleSmallTitle"
|
||||
/>
|
||||
|
||||
|
@@ -1,700 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
|
||||
<string name="about_settings">Telefon Info</string>
|
||||
<string name="about_settings_summary">Rechtliche Hinweise, Telefonstatus und Softwareversion anzeigen</string>
|
||||
<string name="activity_picker_label">Aktivität auswählen</string>
|
||||
<string name="airplane_mode">Flugmodus</string>
|
||||
<string name="airplane_mode_summary">Wählen Sie dies, um alle Drahtlosverbindungen zu deaktivieren</string>
|
||||
<string name="airplane_mode_turning_off">Drahtlosverbindungen werden aktiviert\u2026</string>
|
||||
<string name="airplane_mode_turning_on">Drahtlosverbindungen werden deaktiviert\u2026</string>
|
||||
<string name="android_id_label">Android-ID</string>
|
||||
<string name="apn_apn">APN</string>
|
||||
<string name="apn_edit">Zugangspunkt bearbeiten</string>
|
||||
<string name="apn_http_port">Anschluss</string>
|
||||
<string name="apn_http_proxy">Proxy</string>
|
||||
<string name="apn_label">APN</string>
|
||||
<string name="apn_mcc">MCC</string>
|
||||
<string name="apn_mms_port">MMS-Anschluss</string>
|
||||
<string name="apn_mms_proxy">MMS-Proxy</string>
|
||||
<string name="apn_mmsc">MMSC</string>
|
||||
<string name="apn_mnc">MNC</string>
|
||||
<string name="apn_name">Name</string>
|
||||
<string name="apn_not_set"><Nicht eingestellt></string>
|
||||
<string name="apn_password">Kennwort</string>
|
||||
<string name="apn_server">Server</string>
|
||||
<string name="apn_settings">APNs</string>
|
||||
<string name="apn_type">APN-Typ</string>
|
||||
<string name="apn_user">Benutzername</string>
|
||||
<string name="app_launcher_newView_text">Neuer AppLauncher</string>
|
||||
<string name="app_not_found_dlg_text"> Die Anwendung wurde nicht
|
||||
in der Liste installierter Anwendungen gefunden.</string>
|
||||
<string name="app_not_found_dlg_title">Anwendung nicht gefunden</string>
|
||||
<string name="application_info_label">Anwendungsinformationen</string>
|
||||
<string name="application_size_label">Anwendung</string>
|
||||
<string name="applications_settings">Anwendungen</string>
|
||||
<string name="applications_settings_header">Anwendungseinstellungen</string>
|
||||
<string name="applications_settings_summary">Anwendungen verwalten und Startverknüpfungen einrichten</string>
|
||||
<string name="auto_caps">Automatische Großschreibung</string>
|
||||
<string name="auto_caps_summary">Ersten Buchstaben in Sätzen großschreiben</string>
|
||||
<string name="auto_launch_disable_text">Keine Standardwerte eingestellt.</string>
|
||||
<string name="auto_launch_enable_text">Sie haben ausgewählt, diese Anwendungen für bestimmte Aktionen automatisch zu starten.</string>
|
||||
<string name="auto_launch_label">Standardmäßig starten</string>
|
||||
<string name="auto_punctuate">Automatisch interpunktieren</string>
|
||||
<string name="auto_punctuate_summary">Für Eingabe Leertaste zweimal drücken \u0022.\u0022</string>
|
||||
<string name="auto_replace">Automatisch ersetzen</string>
|
||||
<string name="auto_replace_summary">Falsch geschriebene Wörter korrigieren</string>
|
||||
<string name="autorotate">Automatisch drehen</string>
|
||||
<string name="autorotate_summary_off">Bei Änderung der Displayausrichtung die Anwendung nicht drehen</string>
|
||||
<string name="autorotate_summary_on">Bei Änderung der Displayausrichtung die Anwendung drehen</string>
|
||||
<string name="b_text">B</string>
|
||||
<string name="band_mode_failed">Nicht erfolgreich</string>
|
||||
<string name="band_mode_loading">Laden von Bandliste\u2026</string>
|
||||
<string name="band_mode_set">Einstellen</string>
|
||||
<string name="band_mode_succeeded">Erfolgreich</string>
|
||||
<string name="band_mode_title">GSM/UMTS-Band einstellen</string>
|
||||
<string name="baseband_version">Basisbandversion</string>
|
||||
<string name="basic_settings_title">Telefongrundlagen</string>
|
||||
<string name="battery_info_awake_battery">Wachzeit für Akku:</string>
|
||||
<string name="battery_info_awake_plugged">Wachzeit beim Laden:</string>
|
||||
<string name="battery_info_health_dead">Nicht aktiv</string>
|
||||
<string name="battery_info_health_good">Gut</string>
|
||||
<string name="battery_info_health_label">Akkuzustand:</string>
|
||||
<string name="battery_info_health_over_voltage">Überspannung</string>
|
||||
<string name="battery_info_health_overheat">Überhitzung</string>
|
||||
<string name="battery_info_health_unknown">Unbekannt</string>
|
||||
<string name="battery_info_health_unspecified_failure">Unbekannter Fehler</string>
|
||||
<string name="battery_info_label">Akkuinfo</string>
|
||||
<string name="battery_info_level_label">Akkuladung:</string>
|
||||
<string name="battery_info_scale_label">Akkuskala:</string>
|
||||
<string name="battery_info_screen_on">Display-Ein-Zeit:</string>
|
||||
<string name="battery_info_status_charging">Lädt</string>
|
||||
<string name="battery_info_status_charging_ac">(Netzstrom)</string>
|
||||
<string name="battery_info_status_charging_usb">(USB)</string>
|
||||
<string name="battery_info_status_discharging">Entladung</string>
|
||||
<string name="battery_info_status_full">Voll</string>
|
||||
<string name="battery_info_status_label">Akkustatus:</string>
|
||||
<string name="battery_info_status_not_charging">Kein Laden</string>
|
||||
<string name="battery_info_status_unknown">Unbekannt</string>
|
||||
<string name="battery_info_technology_label">Akkutechnologie:</string>
|
||||
<string name="battery_info_temperature_label">Akkutemperatur:</string>
|
||||
<string name="battery_info_temperature_units">\u00B0 C</string>
|
||||
<string name="battery_info_uptime">Zeit seit Start:</string>
|
||||
<string name="battery_info_voltage_label">Akkuspannung:</string>
|
||||
<string name="battery_info_voltage_units">mV</string>
|
||||
<string name="battery_level_title">Akkuladung</string>
|
||||
<string name="battery_status_title">Akkustatus</string>
|
||||
<string name="bluetooth">Bluetooth</string>
|
||||
<string name="bluetooth_clear_list">Geräteliste löschen</string>
|
||||
<string name="bluetooth_connect">Verbinden</string>
|
||||
<string name="bluetooth_connectable">Nur verbindbar</string>
|
||||
<string name="bluetooth_connected">Verbunden</string>
|
||||
<string name="bluetooth_connecting">Verbindet\u2026</string>
|
||||
<string name="bluetooth_device">Freisprechen/Headset</string>
|
||||
<string name="bluetooth_device_info">Bluetooth-Geräteinfo</string>
|
||||
<string name="bluetooth_device_info_alias">Anderer Gerätename</string>
|
||||
<string name="bluetooth_device_info_delete">Dieses Gerät entfernen</string>
|
||||
<string name="bluetooth_device_info_no_alias">Anderen Namen hier eingeben\u2026</string>
|
||||
<string name="bluetooth_device_info_sdp">Unterstützte Dienste auflisten</string>
|
||||
<string name="bluetooth_device_name">Gerätename</string>
|
||||
<string name="bluetooth_devices">Bluetooth-Geräte</string>
|
||||
<string name="bluetooth_disabled">Auswählen, um Bluetooth zu aktivieren</string>
|
||||
<string name="bluetooth_disconnect">Trennen</string>
|
||||
<string name="bluetooth_disconnect_blank"><xliff:g id="device_name">%1$s</xliff:g> wird getrennt</string>
|
||||
<string name="bluetooth_discoverability_panel_title">Folgenden Zustand aktivieren\u2026</string>
|
||||
<string name="bluetooth_discoverable">Erkennbar für %1$s Sekunden</string>
|
||||
<string name="bluetooth_enable_text">Leere Taste\u2026</string>
|
||||
<string name="bluetooth_enabled">Auswählen, um Bluetooth zu aktivieren</string>
|
||||
<string name="bluetooth_enabling">Bluetooth einschalten\u2026</string>
|
||||
<string name="bluetooth_enter_pin_msg">PIN-Eingabe für\u0020</string>
|
||||
<string name="bluetooth_failed_to_enable">Bluetooth kann nicht aktiviert werden</string>
|
||||
<string name="bluetooth_is_discoverable">Erkennbar für %1$s Sekunden\u2026</string>
|
||||
<string name="bluetooth_name_not_set">Keine Name eingestellt; Kontoname wird verwendet</string>
|
||||
<string name="bluetooth_neither">Weder auffindbar noch verbindbar</string>
|
||||
<string name="bluetooth_new_data">Neue Daten eingeben</string>
|
||||
<string name="bluetooth_new_data_cancel">Abbrechen</string>
|
||||
<string name="bluetooth_new_data_confirm">OK</string>
|
||||
<string name="bluetooth_not_connected">Mit diesem Gerät koppeln</string>
|
||||
<string name="bluetooth_not_discoverable">Auswählen, um Gerät erkennbar zu machen</string>
|
||||
<string name="bluetooth_notif_message">Auswahl zur Kopplung mit\u0020</string>
|
||||
<string name="bluetooth_notif_ticker">Anfrage für Bluetooth-Kopplung</string>
|
||||
<string name="bluetooth_notif_title">Anfrage für Bluetooth-Kopplung</string>
|
||||
<string name="bluetooth_pair">Koppeln</string>
|
||||
<string name="bluetooth_paired">Gekoppelt</string>
|
||||
<string name="bluetooth_paired_not_nearby">Gekoppelt</string>
|
||||
<string name="bluetooth_pairing">Wird gekoppelt\u2026</string>
|
||||
<string name="bluetooth_pairing_msg">Wird gekoppelt\u2026</string>
|
||||
<string name="bluetooth_pin_entry">Bluetooth-PIN-Eingabe</string>
|
||||
<string name="bluetooth_quick_toggle_summary">Auswählen, um Bluetooth zu aktivieren</string>
|
||||
<string name="bluetooth_quick_toggle_title">Bluetooth</string>
|
||||
<string name="bluetooth_scan_for_devices">Nach Geräten suchen</string>
|
||||
<string name="bluetooth_scan_for_new_devices">Nach neuen Geräten suchen\u2026</string>
|
||||
<string name="bluetooth_scan_text">Leere Taste\u2026</string>
|
||||
<string name="bluetooth_settings">Bluetooth-Einstellungen</string>
|
||||
<string name="bluetooth_settings_summary">Verbindungen verwalten, Gerätenamen und Erkennbarkeit einstellen</string>
|
||||
<string name="bluetooth_settings_text">Leere Taste\u2026</string>
|
||||
<string name="bluetooth_settings_title">Bluetooth-Einstellungen</string>
|
||||
<string name="bluetooth_starting">Starten von Bluetooth\u2026</string>
|
||||
<string name="bluetooth_stopping">Stoppen von Bluetooth\u2026</string>
|
||||
<string name="bluetooth_unknown">Unbekannt</string>
|
||||
<string name="bluetooth_unpair">Entkoppeln</string>
|
||||
<string name="bluetooth_visibility">Erkennbar</string>
|
||||
<string name="bootloader_version">Boot-Loader-Version</string>
|
||||
<string name="brightness">Helligkeit</string>
|
||||
<string name="build_date_label">Herstellungsdatum</string>
|
||||
<string name="build_description_label">Herstellungsbeschreibung</string>
|
||||
<string name="build_host_label">Herstellungshost</string>
|
||||
<string name="build_id_label">Herstellungs-ID</string>
|
||||
<string name="build_number">Herstellungsnummer</string>
|
||||
<string name="build_type_label">Herstellungstyp</string>
|
||||
<string name="build_user_label">Herstellungsanwender</string>
|
||||
<string name="call_settings_summary">Mobilbox, Rufumleitung, Anklopfen, Anrufer-ID einrichten</string>
|
||||
<string name="call_settings_title">Anrufeinstellungen</string>
|
||||
<string name="cancel">Abbrechen</string>
|
||||
<string name="checkin_button_label">Nach Upgrade suchen</string>
|
||||
<string name="checkin_download_failed">Nicht erfolgreich</string>
|
||||
<string name="checkin_download_label">Status Herunterladen</string>
|
||||
<string name="checkin_download_ongoing">Wird heruntergeladen</string>
|
||||
<string name="checkin_download_pending">Hängend</string>
|
||||
<string name="checkin_download_succeeded">Abgeschlossen</string>
|
||||
<string name="checkin_download_suspended">Ausgesetzt</string>
|
||||
<string name="checkin_download_unknown">Unbekannter Status</string>
|
||||
<string name="checkin_failures_label">Fehler seit letztem Erfolg</string>
|
||||
<string name="checkin_last_time_label">Letzter erfolgreicher Check-in</string>
|
||||
<string name="checkin_started_message">Check-in gestartet\u2026</string>
|
||||
<string name="checkin_status_label">Check-in-Status</string>
|
||||
<string name="checkin_time_never">(nie)</string>
|
||||
<string name="checkin_upgrade_label">Ausstehendes Upgrade</string>
|
||||
<string name="choose_timezone">Zeitzone auswählen</string>
|
||||
<string name="choose_timezone_region">Region auswählen</string>
|
||||
<string name="clear_activities">Standardwerte löschen</string>
|
||||
<string name="clear_data_dlg_text">Alle Daten, die Sie in dieser Anwendung gespeichert haben, werden dauerhaft gelöscht.</string>
|
||||
<string name="clear_data_dlg_title">Löschen</string>
|
||||
<string name="clear_data_failed">Anwendungsdaten können nicht gelöscht werden.</string>
|
||||
<string name="clear_user_data_text">Daten löschen</string>
|
||||
<string name="computing_size">Berechung von Anwendungsgrößen\u2026</string>
|
||||
<string name="connect">Verbinden</string>
|
||||
<string name="connect_to_blank">Verbinden mit <xliff:g id="network_name">%1$s</xliff:g></string>
|
||||
<string name="contributors_title">Tragen bei</string>
|
||||
<string name="copyright_title">Copyright</string>
|
||||
<string name="data_settings">Dateneinstellungen</string>
|
||||
<string name="data_settings_summary">SD-Karte und Telefonspeicher, Datensynchronisierung</string>
|
||||
<string name="data_settings_title">Daten</string>
|
||||
<string name="data_size_label">Daten</string>
|
||||
<string name="date_and_time">Datum- & Uhrzeit-Einstellungen</string>
|
||||
<string name="date_and_time_settings_summary">Datum, Uhrzeit, Zeitzone und Formate einstellen</string>
|
||||
<string name="date_and_time_settings_title">Datum & Uhrzeit</string>
|
||||
<string name="date_time_24hour">24-Stunden-Format verwenden</string>
|
||||
<string name="date_time_auto">Automatisch</string>
|
||||
<string name="date_time_auto_summaryOff">Vom Netz bereitgestellte Werte verwenden</string>
|
||||
<string name="date_time_auto_summaryOn">Vom Netz bereitgestellte Werte verwenden</string>
|
||||
<string name="date_time_changeDate_text">Datum ändern</string>
|
||||
<string name="date_time_changeTime_text">Uhrzeit ändern</string>
|
||||
<string name="date_time_dateDisplay_text">3. Nov. 1997</string>
|
||||
<string name="date_time_date_format">Datumsformat auswählen</string>
|
||||
<string name="date_time_set_date">Datum einstellen</string>
|
||||
<string name="date_time_set_time">Uhrzeit einstellen</string>
|
||||
<string name="date_time_set_timezone">Zeitzone einstellen</string>
|
||||
<string name="date_time_setzone_text">Zeitzone ändern</string>
|
||||
<string name="date_time_timeDisplay_text">11 Uhr 45 </string>
|
||||
<string name="date_time_timezone_label">Zeitzone:</string>
|
||||
<string name="debug_intent_sender_label">Debug-Intent-Sender</string>
|
||||
<string name="default_date_format">TT/MM/JJJJ</string>
|
||||
<string name="default_keyboard_device_label">Standard-Tastatur</string>
|
||||
<string name="development_settings_summary">Einstellungen für Anwendungsentwicklung</string>
|
||||
<string name="development_settings_title">Entwicklung</string>
|
||||
<string name="device_info_asleeptime">Schlafzeit</string>
|
||||
<string name="device_info_awaketime">Wachzeit</string>
|
||||
<string name="device_info_default">Unbekannt</string>
|
||||
<string name="device_info_label">Geräteinfo</string>
|
||||
<string name="device_info_not_available">Nicht verfügbar</string>
|
||||
<string name="device_info_settings">Telefonstatus</string>
|
||||
<string name="device_info_uptime">Auf-Zeit</string>
|
||||
<string name="device_status">Status</string>
|
||||
<string name="device_status_summary">IMEI, Telefonnummer, Signal usw.</string>
|
||||
<string name="dim_screen">Display abdunkeln</string>
|
||||
<string name="disconnect_ums">USB-Massenspeicher trennen</string>
|
||||
<string name="display_font_size_label">Schriftgröße:</string>
|
||||
<string name="display_label">Anzeige</string>
|
||||
<string name="display_preview_label">Vorschau:</string>
|
||||
<string name="display_settings">Anzeigeeinstellungen</string>
|
||||
<string name="dlg_cancel">Abbrechen</string>
|
||||
<string name="dlg_ok">OK</string>
|
||||
<string name="done">OK</string>
|
||||
<string name="dtmf_tone_enable_summary_off">Bei Verwendung der Wähltastatur Töne wiedergeben</string>
|
||||
<string name="dtmf_tone_enable_summary_on">Bei Verwendung der Wähltastatur Töne wiedergeben</string>
|
||||
<string name="dtmf_tone_enable_title">Töne beim Touch-Screen-Tippen</string>
|
||||
<string name="enable_adb">USB-Debugging</string>
|
||||
<string name="enable_adb_summary">Debug-Modus wenn USB angeschlossen ist</string>
|
||||
<string name="error_apn_empty">Der APN (Zugangspunkt-Name) darf nicht leer sein.</string>
|
||||
<string name="error_connecting">Verbindung mit dem Netz nicht möglich</string>
|
||||
<string name="error_mcc_not3">MCC-Feld muss aus drei Stellen bestehen.</string>
|
||||
<string name="error_mnc_not23">MNC-Feld muss aus zwei oder drei Stellen bestehen.</string>
|
||||
<string name="error_name_empty">Das Namensfeld darf nicht leer sein.</string>
|
||||
<string name="error_saving">Netz kann nicht gespeichert werden</string>
|
||||
<string name="error_scanning">Suche nach Netzen nicht möglich</string>
|
||||
<string name="error_starting">Starten von Wi-Fi nicht möglich</string>
|
||||
<string name="error_stopping">Stoppen von Wi-Fi nicht möglich</string>
|
||||
<string name="error_title">Achtung</string>
|
||||
<string name="failed_to_connect">Verbindung zu <xliff:g id="device_name">%1$s</xliff:g> kann nicht hergestellt werden</string>
|
||||
<string name="failed_to_pair">Kopplung mit <xliff:g id="device_name">%1$s</xliff:g> nicht möglich</string>
|
||||
<string name="favorites_label">Favoriten</string>
|
||||
<string name="firmware_version">Firmwareversion</string>
|
||||
<string name="font_size_preview_text">Servez à ce monsieur une bière et des kiwis.</string>
|
||||
<string name="font_size_save">OK</string>
|
||||
<string name="forget_network">Vergessen</string>
|
||||
<string name="fragment_status_authenticating">Authentifizieren mit <xliff:g id="network_name">%1$s</xliff:g>\u2026</string>
|
||||
<string name="fragment_status_connected">Verbunden mit <xliff:g id="network_name">%1$s</xliff:g></string>
|
||||
<string name="fragment_status_connecting">Verbinden mit <xliff:g id="network_name">%1$s</xliff:g>\u2026</string>
|
||||
<string name="fragment_status_disconnected">Getrennt</string>
|
||||
<string name="fragment_status_disconnecting">Trennen von <xliff:g id="network_name">%1$s</xliff:g>\u2026</string>
|
||||
<string name="fragment_status_failed">Nicht erfolgreich</string>
|
||||
<string name="fragment_status_obtaining_ip">Beziehen von IP-Adresse von <xliff:g id="network_name">%1$s</xliff:g>\u2026</string>
|
||||
<string name="fragment_status_scanning">Durchsuchen\u2026</string>
|
||||
<string name="gsm_version_baseband_label">Basisbandversion</string>
|
||||
<string name="gsm_version_ril_impl_label">RIL-(Firmware-)Impl-Version</string>
|
||||
<string name="install_all_warning">Das Telefon und persönliche Daten können leichter von Anwendungen
|
||||
unbekannter Quellen angegriffen werden. Sie erklären hiermit, dass Sie allein für jegliche
|
||||
Schäden am Telefon oder Verlust an Daten verantwortlich sind, die auf die Verwendung
|
||||
dieser Anwendungen zurückgeführt werden können.</string>
|
||||
<string name="install_applications">Unbekannte Quellen</string>
|
||||
<string name="install_unknown_applications">Installation von Anwendungen erlauben, die nicht aus dem Markt stammen</string>
|
||||
<string name="intent_sender_account_label">Konto: </string>
|
||||
<string name="intent_sender_action_label">Aktion:</string>
|
||||
<string name="intent_sender_data_label">Daten:</string>
|
||||
<string name="intent_sender_resource_label">Ressource: </string>
|
||||
<string name="intent_sender_sendbroadcast_text">Übertragung senden</string>
|
||||
<string name="intent_sender_startactivity_text">Aktivität starten</string>
|
||||
<string name="internal_memory">Interner Telefonspeicher</string>
|
||||
<string name="ip_address">IP-Adresse</string>
|
||||
<string name="kb_text">KB</string>
|
||||
<string name="keep_screen_on">Aktiv bleiben</string>
|
||||
<string name="keep_screen_on_summary">Display während Ladevorgang stets aktiv</string>
|
||||
<string name="kernel_version">Kernel-Version</string>
|
||||
<string name="kernel_version_label">Linux-Kernel-Version</string>
|
||||
<string name="keyguard_label">Keyguard</string>
|
||||
<string name="keyguard_password_button_text">OK</string>
|
||||
<string name="keyguard_password_confirm_new_label">Neues Kennwort bestätigen:</string>
|
||||
<string name="keyguard_password_mismatch_error_text">Die zwei Kennworte stimmen nicht überein. Geben Sie sie erneut ein.</string>
|
||||
<string name="keyguard_password_new_label">Neues Kennwort:</string>
|
||||
<string name="keyguard_password_old_label">Altes Kennwort:</string>
|
||||
<string name="keyguard_password_old_password_error_text">Das eingegebene alte Kennwort ist nicht korrekt. Versuchen Sie es noch einmal.</string>
|
||||
<string name="keyguard_pin_mod_text">PIN ändern</string>
|
||||
<string name="keyguard_pw_mod_text">Sperrmuster auswählen</string>
|
||||
<string name="keyguard_sim_pin_label">SIM PIN</string>
|
||||
<string name="language_category">Spracheinstellung</string>
|
||||
<string name="language_picker_title">Ort</string>
|
||||
<string name="language_settings">Text</string>
|
||||
<string name="language_settings_summary">Optionen für automatische Textkorrektur auswählen</string>
|
||||
<string name="large_font">Groß</string>
|
||||
<string name="legal_information">Rechtliche Hinweise</string>
|
||||
<string name="legal_information_summary">Bestimmungen und Bedingungen anzeigen</string>
|
||||
<string name="license_title">Lizenz</string>
|
||||
<string name="location_gps">GPS-Satelliten aktivieren</string>
|
||||
<string name="location_gps_disabled">Lokalisierung auf Straßenebene (benötigt zusätzlichen Akkustrom und eine freie Sicht zum Himmel)</string>
|
||||
<string name="location_label">Sitz des Anbieters:</string>
|
||||
<string name="location_neighborhood_level">Ort wird über Wi-Fi und/oder Mobilnetze ermittelt</string>
|
||||
<string name="location_network_based">Drahtlosnetze verwenden</string>
|
||||
<string name="location_networks_disabled">Ort in Anwendungen (z. B. Karten) mit Hilfe drahtlose Netze ansehen</string>
|
||||
<string name="location_source">Hier bin ich</string>
|
||||
<string name="location_source_summary">Quellen für Ortsbestimmung auswählen</string>
|
||||
<string name="location_status">Status:</string>
|
||||
<string name="location_street_level">Bei Ortsbestimmung auf Straßenebene genau (Auswahl aufheben, um Akkustrom zu speichern)</string>
|
||||
<string name="location_title">Quellen für eigenen Ort</string>
|
||||
<string name="lock_example_message">Verbinden Sie mindestens vier Punkte.\n
|
||||
\nWählen Sie \u201CWeiter\u201D, wenn Sie zum Zeichnen Ihres eigenen Musters bereit sind.
|
||||
</string>
|
||||
<string name="lock_example_title">Beispielmuster</string>
|
||||
<string name="lock_settings_title">Entsperrmuster für Display</string>
|
||||
<string name="lock_title">Sicherung Ihre Telefons</string>
|
||||
<string name="lockpattern_change_lock_pattern_label">Entsperrmuster ändern</string>
|
||||
<string name="lockpattern_confirm_button_text">Bestätigen</string>
|
||||
<string name="lockpattern_continue_button_text">Fortfahren</string>
|
||||
<string name="lockpattern_need_to_confirm">Muster zur Bestätigung neu zeichnen:</string>
|
||||
<string name="lockpattern_need_to_unlock">Gespeichertes Muster bestätigen:</string>
|
||||
<string name="lockpattern_need_to_unlock_wrong">Versuchen Sie es bitte erneut:</string>
|
||||
<string name="lockpattern_pattern_confirmed_header">Neues Entsperrmuster:</string>
|
||||
<string name="lockpattern_pattern_entered_header">Muster aufgenommen!</string>
|
||||
<string name="lockpattern_recording_incorrect_too_short">Verbinden Sie mindestens <xliff:g id="number">%d</xliff:g> Punkte. Versuchen Sie es erneut:</string>
|
||||
<string name="lockpattern_recording_inprogress">Heben Sie den Finger ab, wenn Sie fertig sind.</string>
|
||||
<string name="lockpattern_recording_intro_footer">Drücken Sie auf Menü für Hilfe.</string>
|
||||
<string name="lockpattern_recording_intro_header">Zeichnen Sie ein Entsperrmuster:</string>
|
||||
<string name="lockpattern_restart_button_text">Neu zeichnen</string>
|
||||
<string name="lockpattern_retry_button_text">Erneut versuchen</string>
|
||||
<string name="lockpattern_settings_change_lock_pattern">Entsperrmuster ändern</string>
|
||||
<string name="lockpattern_settings_choose_lock_pattern">Entsperrmuster einrichten</string>
|
||||
<string name="lockpattern_settings_enable_summary">Muster zeichnen, um Display zu entsperren</string>
|
||||
<string name="lockpattern_settings_enable_title">Muster erforderlich</string>
|
||||
<string name="lockpattern_settings_enable_visible_pattern_title">Sichtbares Muster verwenden</string>
|
||||
<string name="lockpattern_settings_help_how_to_record">Wie man ein Entsperrmuster zeichnet:</string>
|
||||
<string name="lockpattern_settings_title">Entsperrmuster</string>
|
||||
<string name="lockpattern_too_many_failed_confirmation_attempts_footer">Versuchen Sie es in <xliff:g id="number">%d</xliff:g> Sekunden erneut.</string>
|
||||
<string name="lockpattern_too_many_failed_confirmation_attempts_header">Zu viele Fehlversuche!</string>
|
||||
<string name="manage_applications_title">Anwendungen verwalten</string>
|
||||
<string name="manage_space_text">Speicherplatz verwalten</string>
|
||||
<string name="manageapplications_settings_title">Anwendungen verwalten</string>
|
||||
<string name="mass_storage">Für USB-Speicher verwenden</string>
|
||||
<string name="master_clear_button_text">Telefon zurücksetzen</string>
|
||||
<string name="master_clear_desc">Diese Aktion setzt das Telefon auf die Werkseinstellungen zurück. Dabei werden alle Daten und heruntergeladenen Anwendungen gelöscht!</string>
|
||||
<string name="master_clear_failed">Es wurde keine Zurücksetzung durchgeführt, da der System Clear-Dienst nicht verfügbar ist.</string>
|
||||
<string name="master_clear_final_button_text">Alles löschen</string>
|
||||
<string name="master_clear_final_desc">Telefon zurücksetzen und alle Daten und Anwendungen löschen? Aktion kann nicht rückgängig gemacht werden!</string>
|
||||
<string name="master_clear_gesture_explanation">Sie müssen das Entsperrmuster zeichnen, um eine Telefonzurücksetzung zu bestätigen.</string>
|
||||
<string name="master_clear_gesture_prompt">Zeichnen Sie das Entsperrmuster:</string>
|
||||
<string name="master_clear_summary">Löscht alle Daten auf dem Telefon</string>
|
||||
<string name="master_clear_title">Auf Werkseinstellung zurücksetzen</string>
|
||||
<string name="mb_text">MB</string>
|
||||
<string name="media_volume_summary">Lautstärke für Musik und Videos einstellen</string>
|
||||
<string name="media_volume_title">Medienlautstärke</string>
|
||||
<string name="medium_font">Mittel</string>
|
||||
<string name="memory_available">Verfügbarer Speicherplatz</string>
|
||||
<string name="memory_size">Gesamtspeicherplatz</string>
|
||||
<string name="menu_cancel">Verwerfen</string>
|
||||
<string name="menu_delete">APN löschen</string>
|
||||
<string name="menu_new">Neuer APN</string>
|
||||
<string name="menu_save">Speichern</string>
|
||||
<string name="model_number">Modellnummer</string>
|
||||
<string name="network_settings_summary">Optionen für Roaming, Netze, APNs einstellen</string>
|
||||
<string name="network_settings_title">Mobile Netze</string>
|
||||
<string name="networks">Betreiberauswahl</string>
|
||||
<string name="networks_title">Netzeinstellungen</string>
|
||||
<string name="next_button_label">Weiter</string>
|
||||
<string name="next_label">Weiter</string>
|
||||
<string name="notification_sound_dialog_title">Klingelton für Benachrichtigung auswählen</string>
|
||||
<string name="notification_sound_summary">Standard-Klingelton für Benachrichtigungen einrichten</string>
|
||||
<string name="notification_sound_title">Klingelton für Benachrichtigungen</string>
|
||||
<string name="permissions_label">Genehmigungen</string>
|
||||
<string name="phone_info_label">Telefoninfo</string>
|
||||
<string name="phone_language">Sprache auswählen</string>
|
||||
<string name="ping_test_label">Ping-Test durchführen</string>
|
||||
<string name="please_type_hex_key">WEP-Hex-Schlüssel (0-9, A-F)</string>
|
||||
<string name="please_type_passphrase">Drahtloskennwort</string>
|
||||
<string name="product_brand_label">Produktmarke</string>
|
||||
<string name="product_device_label">Telefontyp</string>
|
||||
<string name="progress_scanning">Suchen</string>
|
||||
<string name="proxy_action_text">Speichern</string>
|
||||
<string name="proxy_clear_text">Löschen</string>
|
||||
<string name="proxy_defaultView_text">Standardwerte wiederherstellen</string>
|
||||
<string name="proxy_error">Achtung</string>
|
||||
<string name="proxy_error_dismiss">OK</string>
|
||||
<string name="proxy_error_empty_host_set_port">Das Anschluss-Feld muss leer sein, wenn dass Host-Feld leer ist.</string>
|
||||
<string name="proxy_error_empty_port">Sie müssen das Anschluss-Feld ausfüllen.</string>
|
||||
<string name="proxy_error_invalid_host">Sie haben einen ungültigen Hostnamen eingegeben.</string>
|
||||
<string name="proxy_error_invalid_port">Sie haben einen ungültigen Anschluss eingegeben.</string>
|
||||
<string name="proxy_hostname_label">Hostname</string>
|
||||
<string name="proxy_port_label">Anschluss</string>
|
||||
<string name="proxy_settings_label">Proxy-Einstellungen</string>
|
||||
<string name="quick_launch_assign_application">Anwendung zuweisen</string>
|
||||
<string name="quick_launch_clear_cancel_button">Abbrechen</string>
|
||||
<string name="quick_launch_clear_dialog_message">Ihre Verknüpfung für <xliff:g id="shortcut_letter">%1$s</xliff:g> (<xliff:g id="application_name">%2$s</xliff:g>) wird gelöscht.</string>
|
||||
<string name="quick_launch_clear_dialog_title">Löschen</string>
|
||||
<string name="quick_launch_clear_ok_button">OK</string>
|
||||
<string name="quick_launch_display_mode_applications">Anwendungen</string>
|
||||
<string name="quick_launch_display_mode_shortcuts">Schnellaufruf</string>
|
||||
<string name="quick_launch_no_shortcut">Kein Schnellaufruf</string>
|
||||
<string name="quick_launch_shortcut">Suchen + <xliff:g id="shortcut_letter">%1$s</xliff:g></string>
|
||||
<string name="quick_launch_summary">Tastaturkürzel für Start von Anwendungen einrichten</string>
|
||||
<string name="quick_launch_title">Schellstart</string>
|
||||
<string name="radioInfo_cid">CID</string>
|
||||
<string name="radioInfo_data_connected">Verbunden</string>
|
||||
<string name="radioInfo_data_connecting">Verbinden</string>
|
||||
<string name="radioInfo_data_disconnected">Getrennt</string>
|
||||
<string name="radioInfo_data_suspended">Ausgesetzt</string>
|
||||
<string name="radioInfo_display_asu">asu</string>
|
||||
<string name="radioInfo_display_bytes">Bytes</string>
|
||||
<string name="radioInfo_display_dbm">dBm</string>
|
||||
<string name="radioInfo_display_packets">pkts</string>
|
||||
<string name="radioInfo_lac">LAC</string>
|
||||
<string name="radioInfo_menu_disableData">Datenverbindung deaktivieren</string>
|
||||
<string name="radioInfo_menu_disableDataOnBoot">Daten beim Hochfahren deaktivieren</string>
|
||||
<string name="radioInfo_menu_enableData">Datenverbindung aktivieren</string>
|
||||
<string name="radioInfo_menu_enableDataOnBoot">Daten beim Hochfahren aktivieren</string>
|
||||
<string name="radioInfo_menu_getPDP">PDP-Liste einlesen</string>
|
||||
<string name="radioInfo_menu_viewADN">SIM-Adressbuch anzeigen</string>
|
||||
<string name="radioInfo_menu_viewFDN">Feste Rufnummern anzeigen</string>
|
||||
<string name="radioInfo_menu_viewSDN">Rufnummern für Dienste anzeigen</string>
|
||||
<string name="radioInfo_phone_idle">Leerlauf</string>
|
||||
<string name="radioInfo_phone_offhook">Aktiver Anruf</string>
|
||||
<string name="radioInfo_phone_ringing">Klingeln</string>
|
||||
<string name="radioInfo_roaming_in">Roaming</string>
|
||||
<string name="radioInfo_roaming_not">Kein Roaming</string>
|
||||
<string name="radioInfo_service_emergency">Nur Notrufe</string>
|
||||
<string name="radioInfo_service_in">Im Dienst</string>
|
||||
<string name="radioInfo_service_off">Funkempfang aus</string>
|
||||
<string name="radioInfo_service_out">Kein Dienst</string>
|
||||
<string name="radioInfo_unknown">unbekannt</string>
|
||||
<string name="radio_controls_summary">Wi-Fi, Bluetooth, Flugmodus & mobile Netze verwalten</string>
|
||||
<string name="radio_controls_title">Drahtlos-Bedienelemente</string>
|
||||
<string name="radio_info_band_mode_label">Funkband auswählen</string>
|
||||
<string name="radio_info_call_redirect_label">Anruf umleiten:</string>
|
||||
<string name="radio_info_call_status_label">Anrufstatus:</string>
|
||||
<string name="radio_info_current_network_label">Aktuelles Netz:</string>
|
||||
<string name="radio_info_data_attempts_label">Datenversuche:</string>
|
||||
<string name="radio_info_data_successes_label">Datenerfolge:</string>
|
||||
<string name="radio_info_gprs_service_label">GPRS-Dienst:</string>
|
||||
<string name="radio_info_gsm_disconnects_label">GSM wird getrennt:</string>
|
||||
<string name="radio_info_gsm_service_label">GSM-Dienst:</string>
|
||||
<string name="radio_info_http_client_test">HTTP-Client-Test:</string>
|
||||
<string name="radio_info_imei_label">IMEI:</string>
|
||||
<string name="radio_info_imsi_label">IMSI:</string>
|
||||
<string name="radio_info_message_waiting_label">Wartende Nachricht:</string>
|
||||
<string name="radio_info_neighboring_location_label">Benachbarte CID:</string>
|
||||
<string name="radio_info_network_type_label">Netztyp:</string>
|
||||
<string name="radio_info_phone_number_label">Telefonnummer:</string>
|
||||
<string name="radio_info_ping_hostname">Ping-Hostname (www.google.com):</string>
|
||||
<string name="radio_info_ping_ipaddr">Ping-IpAddr:</string>
|
||||
<string name="radio_info_ppp_received_label">PPP empfangen:</string>
|
||||
<string name="radio_info_ppp_resets_label">Anzahl von PPP-Zurücksetzungen seit Booten:</string>
|
||||
<string name="radio_info_ppp_sent_label">PPP gesendet:</string>
|
||||
<string name="radio_info_radio_resets_label">Funkzurücksetzungen:</string>
|
||||
<string name="radio_info_roaming_label">Roaming:</string>
|
||||
<string name="radio_info_set_perferred_label">Bevorzugten Netztyp einstellen:</string>
|
||||
<string name="radio_info_signal_location_label">Ort:</string>
|
||||
<string name="radio_info_signal_strength_label">Signalstärke:</string>
|
||||
<string name="radio_info_smsc_label">SMSC (SMS-Centre):</string>
|
||||
<string name="radio_info_smsc_refresh_label">Aktualisieren</string>
|
||||
<string name="radio_info_smsc_update_label">Aktualisieren</string>
|
||||
<string name="radio_info_toggle_ciph_label">Verschlüsselung wechseln</string>
|
||||
<string name="read_only">\u0020(Schreibgeschützt)</string>
|
||||
<string name="recompute_size">Neuberechnung der Größe\u2026</string>
|
||||
<string name="ring_volume_summary">Lautstärke für eingehende Anrufe einrichten</string>
|
||||
<string name="ring_volume_title">Klingellautstärke</string>
|
||||
<string name="ringer_volume_instructions">Klingellautstärke mit Lautstärkentasten einstellen</string>
|
||||
<string name="ringer_volume_ringer_mode_label">Klingelmodus</string>
|
||||
<string name="ringer_volume_ringtone_label">Klingelton</string>
|
||||
<string name="ringer_volume_screen_increasing_text">Ansteigendes Klingeln</string>
|
||||
<string name="ringtone_summary">Standard-Klingelton für eingehende Anrufe einrichten</string>
|
||||
<string name="ringtone_title">Telefonklingelton</string>
|
||||
<string name="roaming">Datenroaming</string>
|
||||
<string name="roaming_disable">Verbindung herstellen zu Datendiensten während Roaming</string>
|
||||
<string name="roaming_enable">Verbindung herstellen zu Datendiensten während Roaming</string>
|
||||
<string name="roaming_reenable_message">Sie haben die Datenverbindung verloren, da Sie das Heimatnetz mit ausgeschaltetem Datenroaming verlassen haben.</string>
|
||||
<string name="roaming_reenable_title">Achtung</string>
|
||||
<string name="roaming_turn_it_on_button">Schalten Sie es ein</string>
|
||||
<string name="roaming_warning">Datenroaming erlauben? Dabei können erhebliche Gebühren anfallen!</string>
|
||||
<string name="scan_wifi">Suchen</string>
|
||||
<string name="screen_off_timeout_label">Niemals Timeout während Ladevorgang</string>
|
||||
<string name="screen_timeout">Display-Timeout</string>
|
||||
<string name="sd_card_settings_label">SD-Karte</string>
|
||||
<string name="sd_eject">SD-Karte entnehmen</string>
|
||||
<string name="sd_memory">SD-Karte</string>
|
||||
<string name="sd_unavailable">Nicht verfügbar</string>
|
||||
<string name="sdcard_changes_instructions">Änderungen werden wirksam, wenn das USB-Kabel wieder angeschlossen wird.</string>
|
||||
<string name="sdcard_removal_alert_ok">OK</string>
|
||||
<string name="sdcard_removal_alert_scolding">Die SD-Karte wurde entfernt, während sie noch benutzt wurde!
|
||||
Um eine Beschädigung der Karte zu vermeiden, deaktivieren Sie die Karte im Fenster SD-Karten-Einstellungen, bevor Sie sie entfernen.</string>
|
||||
<string name="sdcard_removal_alert_title">Unsicheres Entfernen der SD-Karte!</string>
|
||||
<string name="sdcard_setting">SD-Karte</string>
|
||||
<string name="sdcard_settings_available_bytes_label">Verfügbare Bytes:</string>
|
||||
<string name="sdcard_settings_bad_removal_status">SD-Karte wurde während ihrer Verwendung entfernt!</string>
|
||||
<string name="sdcard_settings_mass_storage_status">SD-Karte wird als Massenspeicher verwendet</string>
|
||||
<string name="sdcard_settings_not_present_status">Keine SD-Karte</string>
|
||||
<string name="sdcard_settings_read_only_status">Eingesetzte SD-Karte ist schreibgeschützt</string>
|
||||
<string name="sdcard_settings_scanning_status">Suche nach Medien auf SD-Karte\u2026</string>
|
||||
<string name="sdcard_settings_screen_mass_storage_text">USB-Massenspeicher aktivieren</string>
|
||||
<string name="sdcard_settings_total_bytes_label">Bytes insgesamt:</string>
|
||||
<string name="sdcard_settings_unmounted_status">Die SD-Karte kann jetzt sicher entfernt werden</string>
|
||||
<string name="sdcard_settings_used_bytes_label">Genutzte Bytes:</string>
|
||||
<string name="sdcard_unmount">SD-Karte deaktivieren</string>
|
||||
<string name="sdcard_unmountable_alert_ok">OK</string>
|
||||
<string name="sdcard_unmountable_alert_title">SD-Karte nicht lesbar</string>
|
||||
<string name="sdcard_unmountable_message">Die SD-Karte konnte nicht gelesen werden.
|
||||
Das Dateisystem ist möglicherweise fehlerhaft oder die Karte ist beschädigt.</string>
|
||||
<string name="security">Sicherheit</string>
|
||||
<string name="security_and_data_label">Sicherheit & Daten</string>
|
||||
<string name="security_passwords_title">Kennwort</string>
|
||||
<string name="security_settings_desc">Diese Anwendung kann auf Folgendes auf dem Telefon zugreifen:</string>
|
||||
<string name="security_settings_summary">Eigener Aufenthalt, Display-Entsperrung, SIM-Karten-Sperre</string>
|
||||
<string name="security_settings_title">Sicherheit & Ort</string>
|
||||
<string name="select_your_language">Wählen Sie eine Sprache aus</string>
|
||||
<string name="set_lock_pattern_label">Zeichnen Sie Ihr Entsperrmuster:</string>
|
||||
<string name="settings_chooser_pick_string">
|
||||
Einstellungen-Symbol sollte vorgehen nach:
|
||||
</string>
|
||||
<string name="settings_label">Einstellungen</string>
|
||||
<string name="settings_license_activity_loading">Ladung\u2026</string>
|
||||
<string name="settings_license_activity_title">Quellenlizenzen öffnen</string>
|
||||
<string name="settings_license_activity_unavailable">Es gibt ein Problem beim Laden der Lizenzen.</string>
|
||||
<string name="show_password">Sichtbare Kennworte</string>
|
||||
<string name="show_password_summary">Kennwort bei Eingabe anzeigen</string>
|
||||
<string name="signal">Signalstärke</string>
|
||||
<string name="silent_mode_summary">Alle Töne außer für Medien sind deaktiviert</string>
|
||||
<string name="silent_mode_title">Lautlosmodus</string>
|
||||
<string name="sim_bad_pin">Falsche PIN!</string>
|
||||
<string name="sim_change_failed">PIN kann nicht geändert werden.\nMöglicherweise falsche PIN.</string>
|
||||
<string name="sim_change_pin">SIM PIN ändern</string>
|
||||
<string name="sim_change_succeeded">SIM PIN wurde erfolgreich geändert</string>
|
||||
<string name="sim_disable_sim_lock">SIM-Karten-Sperre deaktivieren</string>
|
||||
<string name="sim_enable_sim_lock">SIM-Karten-Sperre aktivieren</string>
|
||||
<string name="sim_enter_cancel">Abbrechen</string>
|
||||
<string name="sim_enter_new">Neue PIN eingeben</string>
|
||||
<string name="sim_enter_ok">OK</string>
|
||||
<string name="sim_enter_old">Alte PIN eingeben</string>
|
||||
<string name="sim_enter_pin">SIM PIN eingeben</string>
|
||||
<string name="sim_lock_failed">SIM-Karten-Sperrzustand kann nicht geändert werden.\nMöglicherweise falsche PIN.</string>
|
||||
<string name="sim_lock_off">PIN für Verwendung des Telefons erforderlich</string>
|
||||
<string name="sim_lock_on">PIN für Verwendung des Telefons erforderlich</string>
|
||||
<string name="sim_lock_settings">Einstellungen für SIM-Karten-Sperre</string>
|
||||
<string name="sim_lock_settings_category">SIM-Karten-Sperre einrichten</string>
|
||||
<string name="sim_lock_settings_title">SIM-Karten-Sperre</string>
|
||||
<string name="sim_pin_change">PIN-Code ändern</string>
|
||||
<string name="sim_pin_toggle">SIM-Karte sperren</string>
|
||||
<string name="sim_pins_dont_match">PINs stimmen nicht überein!</string>
|
||||
<string name="sim_reenter_new">PIN neu eingeben</string>
|
||||
<string name="skip_button_label">Abbrechen</string>
|
||||
<string name="small_font">Klein</string>
|
||||
<string name="software_version">Softwareversion</string>
|
||||
<string name="sort_order_alpha">Alphabetisch sortieren</string>
|
||||
<string name="sort_order_size">Nach Größe sortieren (absteigend)</string>
|
||||
<string name="sound_and_display_settings">Ton & Display</string>
|
||||
<string name="sound_and_display_settings_summary">Klingeltöne, Benachrichtigungen, Displayhelligkeit einstellen</string>
|
||||
<string name="sound_effects_enable_summary_off">Sound bei Auswahl auf Display</string>
|
||||
<string name="sound_effects_enable_summary_on">Sound bei Auswahl auf Display</string>
|
||||
<string name="sound_effects_enable_title">Hörbare Auswahl</string>
|
||||
<string name="sound_settings">Klangeinstellungen</string>
|
||||
<string name="status_authenticating">Authentifizieren\u2026</string>
|
||||
<string name="status_awake_time">Wachzeit</string>
|
||||
<string name="status_bt_address">Bluetooth-Adresse</string>
|
||||
<string name="status_connected">Verbunden</string>
|
||||
<string name="status_connecting">Verbindet\u2026</string>
|
||||
<string name="status_data_state">Datenzugriff</string>
|
||||
<string name="status_disconnected">Getrennt</string>
|
||||
<string name="status_disconnecting">Trennt\u2026</string>
|
||||
<string name="status_failed">Nicht erfolgreich</string>
|
||||
<string name="status_imei">IMEI</string>
|
||||
<string name="status_imei_sv">IMEI SV</string>
|
||||
<string name="status_imsi">IMSI</string>
|
||||
<string name="status_network_type">Netztyp</string>
|
||||
<string name="status_number">Telefonnummer</string>
|
||||
<string name="status_obtaining_ip">Adresse beziehen\u2026</string>
|
||||
<string name="status_operator">Netz</string>
|
||||
<string name="status_roaming">Roaming</string>
|
||||
<string name="status_scanning">Scannen\u2026</string>
|
||||
<string name="status_service_state">Dienststatus</string>
|
||||
<string name="status_signal_strength">Signalstärke</string>
|
||||
<string name="status_unavailable">Nicht verfügbar</string>
|
||||
<string name="status_up_time">Auf-Zeit</string>
|
||||
<string name="status_wifi_mac_address">Wi-Fi MAC-Adresse</string>
|
||||
<string name="stay_on">Display während Ladevorgang immer aktiv</string>
|
||||
<string name="storage_label">Speicher</string>
|
||||
<string name="storage_settings_summary">SD-Karte entnehmen, verfügbaren Speicher anzeigen</string>
|
||||
<string name="storage_settings_title">SD-Karte & Telefonspeicher</string>
|
||||
<string name="sum_carrier_select">Wählen Sie einen Netzbetreiber aus</string>
|
||||
<string name="summary_connection_failed">Verbindung fehlgeschlagen; auswählen, um es erneut zu versuchen</string>
|
||||
<string name="summary_not_in_range">Nicht in Reichweite</string>
|
||||
<string name="summary_remembered">Erinnert</string>
|
||||
<string name="sync_automatically">Automatische Synchronisierung</string>
|
||||
<string name="sync_calendar">Kalender</string>
|
||||
<string name="sync_contacts">Kontakte</string>
|
||||
<string name="sync_disabled">Auswählen, um Daten automatisch zu synchronisieren</string>
|
||||
<string name="sync_do_nothing">Diesmal nichts tun.</string>
|
||||
<string name="sync_enabled">Daten automatisch synchronisieren</string>
|
||||
<string name="sync_gmail">Gmail</string>
|
||||
<string name="sync_is_failing">Bei der Synchronisierung gibt es derzeit Probleme. Wird in Kürze fortgesetzt.</string>
|
||||
<string name="sync_menu_sync_cancel">Synchr. abbrechen</string>
|
||||
<string name="sync_menu_sync_now">Jetzt synchronisieren</string>
|
||||
<string name="sync_really_delete">Diese Elemente löschen.</string>
|
||||
<string name="sync_settings">Datensynchronisierung</string>
|
||||
<string name="sync_settings_summary">Auswählen, welche Anwendungen synchronisiert werden</string>
|
||||
<string name="sync_too_many_deletes">Limit für Löschung überschritten</string>
|
||||
<string name="sync_too_many_deletes_desc">Es gibt %d gelöschte Elemente für %s, Konto %s. Was möchten Sie tun?</string>
|
||||
<string name="sync_undo_deletes">Löschungen rückgängig machen.</string>
|
||||
<string name="target_build_field_label">Geforderter Herstellungstyp</string>
|
||||
<string name="team_title">Team</string>
|
||||
<string name="telephony_apn_label">APN:</string>
|
||||
<string name="telephony_mcc_label">MCC:</string>
|
||||
<string name="telephony_mmsc_label">MMSC:</string>
|
||||
<string name="telephony_mmsport_label">MMS-Anschluss:</string>
|
||||
<string name="telephony_mmsproxy_label">MMS-Proxy:</string>
|
||||
<string name="telephony_mnc_label">MNC:</string>
|
||||
<string name="telephony_name_label">Name:</string>
|
||||
<string name="telephony_password_label">Kennwort:</string>
|
||||
<string name="telephony_port_label">Anschluss:</string>
|
||||
<string name="telephony_proxy_label">Proxy:</string>
|
||||
<string name="telephony_server_label">Server:</string>
|
||||
<string name="telephony_user_label">Benutzer:</string>
|
||||
<string name="terms_title">Bestimmungen und Bedingungen</string>
|
||||
<string name="testing">Test</string>
|
||||
<string name="testing_battery_info">Akkuinformationen</string>
|
||||
<string name="testing_phone_info">Telefoninformationen</string>
|
||||
<string name="testing_sim_toolkit">SIM-Toolkit</string>
|
||||
<string name="text_category">Texteinstellungen</string>
|
||||
<string name="total_size_label">Gesamt</string>
|
||||
<string name="turn_off_qxdm">QXDM SD-Log deaktivieren</string>
|
||||
<string name="turn_off_radio">Mobilfunk ausschalten</string>
|
||||
<string name="turn_on_qxdm">QXDM SD-Log aktivieren</string>
|
||||
<string name="turn_on_radio">Mobilfunk einschalten</string>
|
||||
<string name="underdeveloped_settings_label">Nicht ausreichende Einstellungen</string>
|
||||
<string name="uninstall_failed">Anwendung kann nicht deinstalliert werden.</string>
|
||||
<string name="uninstall_text">Deinstallieren</string>
|
||||
<string name="unknown">Unbekannt</string>
|
||||
<string name="vibrate_summary">Telefon bei eingehenden Anrufen vibrieren</string>
|
||||
<string name="vibrate_title">Telefonvibrierung</string>
|
||||
<string name="wallpaper_label">Bildschirmhintergrund</string>
|
||||
<string name="wifi">Wi-Fi</string>
|
||||
<string name="wifi_access_points">Wi-Fi-Netze</string>
|
||||
<string name="wifi_add_other_network">Wi-Fi-Netz hinzufügen</string>
|
||||
<string name="wifi_context_menu_change_password">Kennwort ändern</string>
|
||||
<string name="wifi_context_menu_connect">Verbindung mit Netz</string>
|
||||
<string name="wifi_context_menu_forget">Netz vergessen</string>
|
||||
<string name="wifi_dhcp_timeout_error">Es gibt ein Problem beim Beziehen der IP-Adresse.</string>
|
||||
<string name="wifi_dns1">DNS 1</string>
|
||||
<string name="wifi_dns2">DNS 2</string>
|
||||
<string name="wifi_dns3">DNS 3</string>
|
||||
<string name="wifi_dns_label">Dns:</string>
|
||||
<string name="wifi_error">Fehler</string>
|
||||
<string name="wifi_gateway">Gateway</string>
|
||||
<string name="wifi_gateway_label">Gateway:</string>
|
||||
<string name="wifi_generic_connection_error">Es gibt ein Problem bei der Verbindungsherstellung mit dem Netz. Versuchen Sie es erneut.</string>
|
||||
<string name="wifi_host_ip">Host-IP:</string>
|
||||
<string name="wifi_ip_address">IP-Adresse</string>
|
||||
<string name="wifi_ip_settings_invalid_ip">Geben Sie eine gültige IP-Adresse an.</string>
|
||||
<string name="wifi_ip_settings_menu_cancel">Abbrechen</string>
|
||||
<string name="wifi_ip_settings_menu_save">Speichern</string>
|
||||
<string name="wifi_ip_settings_titlebar">IP-Einstellungen</string>
|
||||
<string name="wifi_link_speed">Geschwindigkeit</string>
|
||||
<string name="wifi_menu_advanced">Erweitert</string>
|
||||
<string name="wifi_netmask">Netzmaske</string>
|
||||
<string name="wifi_netmask_label">Netzmaske:</string>
|
||||
<string name="wifi_notify_open_networks">Netzbenachrichtigung</string>
|
||||
<string name="wifi_notify_open_networks_summary">Benachrichtigen, wenn offenes Netz verfügbar ist</string>
|
||||
<string name="wifi_password_incorrect_error">Das eingegeben Netzkennwort ist falsch. Versuchen Sie es noch einmal.</string>
|
||||
<string name="wifi_password_unchanged">(unverändert)</string>
|
||||
<string name="wifi_prefer_wifi">Wi-Fi bevorzugen</string>
|
||||
<string name="wifi_quick_toggle_summary">Auswählen, um Wi-Fi einzuschalten</string>
|
||||
<string name="wifi_quick_toggle_title">Wi-Fi</string>
|
||||
<string name="wifi_save_config">Speichern</string>
|
||||
<string name="wifi_screen_activate_text">Aktivieren</string>
|
||||
<string name="wifi_screen_dhcp_text">Automatisch</string>
|
||||
<string name="wifi_screen_dns_text">209.81.59.2</string>
|
||||
<string name="wifi_screen_gateway_text">192.168.20.1</string>
|
||||
<string name="wifi_screen_ip_text">192.168.20.10</string>
|
||||
<string name="wifi_screen_manual_text">Manuell</string>
|
||||
<string name="wifi_screen_netmask_text">255.255.255.0</string>
|
||||
<string name="wifi_screen_status_text">Wi-Fi ist aktiv</string>
|
||||
<string name="wifi_screen_test_text">Test</string>
|
||||
<string name="wifi_security">Sicherheit</string>
|
||||
<string name="wifi_security_open">Öffnen</string>
|
||||
<string name="wifi_security_unknown">Unbekannt</string>
|
||||
<string name="wifi_security_verbose_open">Offenes Netz</string>
|
||||
<string name="wifi_security_verbose_wep">Gesichert mit WEP</string>
|
||||
<string name="wifi_security_verbose_wpa">Gesichert mit WPA</string>
|
||||
<string name="wifi_security_verbose_wpa2">Gesichert mit WPA2</string>
|
||||
<string name="wifi_security_wep">WEP</string>
|
||||
<string name="wifi_security_wpa">WPA</string>
|
||||
<string name="wifi_security_wpa2">WPA2</string>
|
||||
<string name="wifi_settings">Wi-Fi-Einstellungen</string>
|
||||
<string name="wifi_settings_category">Wi-Fi-Einstellungen</string>
|
||||
<string name="wifi_settings_summary">Drahtlos-Zugangspunkte einrichten und verwalten</string>
|
||||
<string name="wifi_show_password">Kennwort anzeigen.</string>
|
||||
<string name="wifi_signal_0">Schlecht</string>
|
||||
<string name="wifi_signal_1">Befriedigend</string>
|
||||
<string name="wifi_signal_2">Gut</string>
|
||||
<string name="wifi_signal_3">Hervorragend</string>
|
||||
<string name="wifi_starting">Einschalten\u2026</string>
|
||||
<string name="wifi_status">Status</string>
|
||||
<string name="wifi_stopping">Ausschalten\u2026</string>
|
||||
<string name="wifi_type_ssid">Netz-SSID eingeben:</string>
|
||||
<string name="wifi_use_static_ip">Statische IP verwenden</string>
|
||||
<string name="wifi_wlan_id">WLAN-ID:</string>
|
||||
</resources>
|
39
res/values-de/arrays.xml
Normal file
@@ -0,0 +1,39 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<resources xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
|
||||
<string-array name="timezone_filters">
|
||||
<item>"Amerika"</item>
|
||||
<item>"Europa"</item>
|
||||
<item>"Afrika"</item>
|
||||
<item>"Asien"</item>
|
||||
<item>"Australien"</item>
|
||||
<item>"Pacific"</item>
|
||||
<item>"Alle"</item>
|
||||
</string-array>
|
||||
<string-array name="screen_timeout_entries">
|
||||
<item>"15 Sekunden"</item>
|
||||
<item>"30 Sekunden"</item>
|
||||
<item>"1 Minute"</item>
|
||||
<item>"2 Minuten"</item>
|
||||
<item>"10 Minuten"</item>
|
||||
<item>"Kein Timeout"</item>
|
||||
</string-array>
|
||||
<string-array name="wifi_security_entries">
|
||||
<item>"Autom."</item>
|
||||
<item>"Keine"</item>
|
||||
<item>"WEP"</item>
|
||||
<item>"WPA Personal"</item>
|
||||
<item>"WPA2 Personal"</item>
|
||||
</string-array>
|
||||
<string-array name="wifi_security_without_auto_entries">
|
||||
<item>"Keine"</item>
|
||||
<item>"WEP"</item>
|
||||
<item>"WPA Personal"</item>
|
||||
<item>"WPA2 Personal"</item>
|
||||
</string-array>
|
||||
<string-array name="wifi_wep_type">
|
||||
<item>"Autom."</item>
|
||||
<item>"WEP ASCII"</item>
|
||||
<item>"WEP hexadezimal"</item>
|
||||
</string-array>
|
||||
</resources>
|
729
res/values-de/strings.xml
Normal file
@@ -0,0 +1,729 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<resources xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
|
||||
<string name="device_info_default">"Unbekannt"</string>
|
||||
<string name="device_info_uptime">"Betriebszeit"</string>
|
||||
<string name="device_info_awaketime">"Aktivzeit"</string>
|
||||
<string name="device_info_asleeptime">"Inaktivzeit"</string>
|
||||
<string name="turn_on_radio">"Radio einschalten"</string>
|
||||
<string name="turn_off_radio">"Radio ausschalten"</string>
|
||||
<string name="turn_on_qxdm">"QXDM-SD-Protokoll aktivieren"</string>
|
||||
<string name="turn_off_qxdm">"QXDM-SD-Protokoll deaktivieren"</string>
|
||||
<string name="radioInfo_menu_viewADN">"SIM-Adressbuch anzeigen"</string>
|
||||
<string name="radioInfo_menu_viewFDN">"Feste Rufnummern anzeigen"</string>
|
||||
<string name="radioInfo_menu_viewSDN">"Servicerufnummern anzeigen"</string>
|
||||
<string name="radioInfo_menu_getPDP">"PDP-Liste abrufen"</string>
|
||||
<string name="radioInfo_menu_enableData">"Datenverbindung aktivieren"</string>
|
||||
<string name="radioInfo_menu_disableData">"Datenverbindung deaktivieren"</string>
|
||||
<string name="radioInfo_menu_enableDataOnBoot">"Daten beim Start aktivieren"</string>
|
||||
<string name="radioInfo_menu_disableDataOnBoot">"Daten beim Start deaktivieren"</string>
|
||||
<string name="radioInfo_service_in">"In Betrieb"</string>
|
||||
<string name="radioInfo_service_out">"Außer Betrieb"</string>
|
||||
<string name="radioInfo_service_emergency">"Nur Notrufe"</string>
|
||||
<string name="radioInfo_service_off">"Radio aus"</string>
|
||||
<string name="radioInfo_roaming_in">"Roaming"</string>
|
||||
<string name="radioInfo_roaming_not">"Kein Roaming"</string>
|
||||
<string name="radioInfo_phone_idle">"Inaktiv"</string>
|
||||
<string name="radioInfo_phone_ringing">"Klingelton"</string>
|
||||
<string name="radioInfo_phone_offhook">"Anruf wird getätigt"</string>
|
||||
<string name="radioInfo_data_disconnected">"Nicht verbunden"</string>
|
||||
<string name="radioInfo_data_connecting">"Verbindung wird hergestellt"</string>
|
||||
<string name="radioInfo_data_connected">"Verbunden"</string>
|
||||
<string name="radioInfo_data_suspended">"Angehalten"</string>
|
||||
<string name="radioInfo_unknown">"unbekannt"</string>
|
||||
<string name="radioInfo_display_packets">"Pakete"</string>
|
||||
<string name="radioInfo_display_bytes">"Bytes"</string>
|
||||
<string name="radioInfo_display_dbm">"dBm"</string>
|
||||
<string name="radioInfo_display_asu">"ASU"</string>
|
||||
<string name="radioInfo_lac">"LAC"</string>
|
||||
<string name="radioInfo_cid">"CID"</string>
|
||||
<string name="sdcard_unmount">"SD-Karte entnehmen"</string>
|
||||
<string name="small_font">"Klein"</string>
|
||||
<string name="medium_font">"Mittel"</string>
|
||||
<string name="large_font">"Groß"</string>
|
||||
<string name="font_size_save">"OK"</string>
|
||||
<string name="sdcard_setting">"SD-Karte"</string>
|
||||
<string name="screen_off_timeout_label">"Kein Timeout beim Laden"</string>
|
||||
<string name="stay_on">"Display wird beim Laden nie ausgeschaltet"</string>
|
||||
<string name="app_launcher_newView_text">"Neuer AppLauncher"</string>
|
||||
<string name="battery_info_status_label">"Akkustatus:"</string>
|
||||
<string name="battery_info_scale_label">"Akkuanzeige:"</string>
|
||||
<string name="battery_info_level_label">"Akkuladung:"</string>
|
||||
<string name="battery_info_health_label">"Akkuzustand:"</string>
|
||||
<string name="battery_info_technology_label">"Akkutechnologie:"</string>
|
||||
<string name="battery_info_voltage_label">"Akkuspannung:"</string>
|
||||
<string name="battery_info_voltage_units">"mV"</string>
|
||||
<string name="battery_info_temperature_label">"Akkutemperatur:"</string>
|
||||
<string name="battery_info_temperature_units">"° C"</string>
|
||||
<string name="battery_info_uptime">"Zeit seit Start:"</string>
|
||||
<string name="battery_info_awake_battery">"Aktivzeit bei Akku:"</string>
|
||||
<string name="battery_info_awake_plugged">"Aktivzeit beim Laden:"</string>
|
||||
<string name="battery_info_screen_on">"Display eingeschaltet:"</string>
|
||||
<string name="battery_info_status_unknown">"Unbekannt"</string>
|
||||
<string name="battery_info_status_charging">"Wird geladen"</string>
|
||||
<string name="battery_info_status_charging_ac">"(AC)"</string>
|
||||
<string name="battery_info_status_charging_usb">"(USB)"</string>
|
||||
<string name="battery_info_status_discharging">"Entladung"</string>
|
||||
<string name="battery_info_status_not_charging">"Wird nicht geladen"</string>
|
||||
<string name="battery_info_status_full">"Voll"</string>
|
||||
<string name="battery_info_health_unknown">"Unbekannt"</string>
|
||||
<string name="battery_info_health_good">"OK"</string>
|
||||
<string name="battery_info_health_overheat">"Überhitzung"</string>
|
||||
<string name="battery_info_health_dead">"Leer"</string>
|
||||
<string name="battery_info_health_over_voltage">"Überspannung"</string>
|
||||
<string name="battery_info_health_unspecified_failure">"Unbekannter Fehler"</string>
|
||||
<string name="bluetooth">"Bluetooth"</string>
|
||||
<string name="bluetooth_stopping">"Bluetooth wird beendet..."</string>
|
||||
<!-- no translation found for bluetooth_disabled (3281654100455454605) -->
|
||||
<skip />
|
||||
<!-- no translation found for bluetooth_enabled (314506563815464155) -->
|
||||
<skip />
|
||||
<string name="bluetooth_enabling">"Bluetooth wird aktiviert..."</string>
|
||||
<string name="bluetooth_visibility">"Erkennbar"</string>
|
||||
<string name="bluetooth_is_discoverable">"Für <xliff:g id="DISCOVERABLE_TIME_PERIOD">%1$s</xliff:g> Sekunden sichtbar..."</string>
|
||||
<!-- no translation found for bluetooth_not_discoverable (128269993123955177) -->
|
||||
<skip />
|
||||
<string name="bluetooth_devices">"Bluetooth-Geräte"</string>
|
||||
<string name="bluetooth_device_name">"Gerätename"</string>
|
||||
<string name="bluetooth_name_not_set">"Kein Name festgelegt, Kontoname wird verwendet"</string>
|
||||
<string name="bluetooth_scan_for_devices">"Scannen nach Geräten"</string>
|
||||
<string name="bluetooth_clear_list">"Geräteliste löschen"</string>
|
||||
<!-- no translation found for bluetooth_disconnect_blank (8102076504922229274) -->
|
||||
<skip />
|
||||
<string name="bluetooth_connected">"Verbunden"</string>
|
||||
<!-- no translation found for bluetooth_disconnected (6557104142667339895) -->
|
||||
<skip />
|
||||
<!-- no translation found for bluetooth_disconnecting (8913264760027764974) -->
|
||||
<skip />
|
||||
<string name="bluetooth_connecting">"Verbindung wird hergestellt..."</string>
|
||||
<!-- no translation found for bluetooth_unknown (644716244548801421) -->
|
||||
<skip />
|
||||
<string name="bluetooth_not_connected">"Pairing mit diesem Gerät"</string>
|
||||
<string name="bluetooth_failed_to_enable">"Bluetooth kann nicht aktiviert werden"</string>
|
||||
<string name="bluetooth_pairing">"Pairing…"</string>
|
||||
<!-- no translation found for failed_to_pair (7648018965110976948) -->
|
||||
<skip />
|
||||
<!-- no translation found for failed_to_connect (4770209428036813667) -->
|
||||
<skip />
|
||||
<string name="bluetooth_paired">"Gepaart"</string>
|
||||
<string name="bluetooth_paired_not_nearby">"Gepaart"</string>
|
||||
<string name="bluetooth_device">"Freisprechfunktion/Headset"</string>
|
||||
<string name="bluetooth_disconnect">"Verbindung trennen"</string>
|
||||
<string name="bluetooth_connect">"Verbinden"</string>
|
||||
<string name="bluetooth_unpair">"Pairing aufheben"</string>
|
||||
<string name="bluetooth_pair">"Paaren"</string>
|
||||
<string name="progress_scanning">"Scannen..."</string>
|
||||
<string name="bluetooth_notif_ticker">"Bluetooth-Pairing-Anfrage"</string>
|
||||
<!-- no translation found for bluetooth_notif_title (2485175521845371514) -->
|
||||
<skip />
|
||||
<string name="bluetooth_notif_message">"Zum Pairing auswählen"</string>
|
||||
<string name="date_and_time">"Einstellungen"</string>
|
||||
<string name="date_time_12_hour_sample">"1:00"</string>
|
||||
<string name="date_time_24_hour_sample">"13:00"</string>
|
||||
<string name="choose_timezone">"Zeitzone auswählen"</string>
|
||||
<string name="display_preview_label">"Vorschau:"</string>
|
||||
<string name="display_font_size_label">"Schriftgröße:"</string>
|
||||
<!-- no translation found for intent_sender_data_label (6332324780477289261) -->
|
||||
<skip />
|
||||
<string name="intent_sender_sendbroadcast_text">"<xliff:g id="BROADCAST">broadcast</xliff:g> senden"</string>
|
||||
<string name="intent_sender_action_label">"<xliff:g id="ACTION">Action</xliff:g>:"</string>
|
||||
<string name="intent_sender_startactivity_text">"<xliff:g id="ACTIVITY">activity</xliff:g> starten"</string>
|
||||
<string name="intent_sender_resource_label">"<xliff:g id="RESOURCE">Resource</xliff:g>:"</string>
|
||||
<string name="intent_sender_account_label">"Konto:"</string>
|
||||
<string name="keyguard_pw_mod_text">"Sperrmuster auswählen"</string>
|
||||
<string name="keyguard_pin_mod_text">"PIN ändern"</string>
|
||||
<string name="keyguard_label">"Keyguard"</string>
|
||||
<string name="keyguard_sim_pin_label">"SIM-PIN"</string>
|
||||
<string name="keyguard_password_old_password_error_text">"Das alte Passwort ist falsch. Bitte versuchen Sie es erneut."</string>
|
||||
<string name="keyguard_password_button_text">"OK"</string>
|
||||
<string name="keyguard_password_confirm_new_label">"Neues Passwort bestätigen:"</string>
|
||||
<string name="keyguard_password_new_label">"Neues Passwort:"</string>
|
||||
<string name="keyguard_password_old_label">"Altes Passwort:"</string>
|
||||
<string name="keyguard_password_mismatch_error_text">"Die beiden Passwörter stimmen nicht überein. Bitte geben Sie sie erneut ein."</string>
|
||||
<string name="proxy_clear_text">"Löschen"</string>
|
||||
<string name="proxy_port_label">"Port"</string>
|
||||
<string name="proxy_defaultView_text">"Standard wiederherstellen"</string>
|
||||
<string name="proxy_action_text">"Speichern"</string>
|
||||
<string name="proxy_hostname_label">"Hostname"</string>
|
||||
<string name="proxy_error">"Achtung"</string>
|
||||
<string name="proxy_error_dismiss">"OK"</string>
|
||||
<string name="proxy_error_invalid_host">"Der eingegebene Hostname ist ungültig."</string>
|
||||
<string name="proxy_error_empty_port">"Sie müssen das Feld für den Port ausfüllen."</string>
|
||||
<string name="proxy_error_empty_host_set_port">"Das Feld für den Port muss leer sein, wenn das Feld für den Host leer ist."</string>
|
||||
<string name="proxy_error_invalid_port">"Der eingegebene Port ist ungültig."</string>
|
||||
<string name="radio_info_signal_location_label">"Standort:"</string>
|
||||
<string name="radio_info_neighboring_location_label">"Benachbarte CID:"</string>
|
||||
<string name="radio_info_data_attempts_label">"Datenversuche:"</string>
|
||||
<string name="radio_info_imsi_label">"IMSI:"</string>
|
||||
<string name="radio_info_gprs_service_label">"GPRS-Service:"</string>
|
||||
<string name="radio_info_roaming_label">"Roaming:"</string>
|
||||
<string name="radio_info_imei_label">"IMEI:"</string>
|
||||
<string name="radio_info_call_redirect_label">"Rufumleitung:"</string>
|
||||
<string name="radio_info_ppp_resets_label">"Anzahl der PPP-Zurücksetzungen seit dem Start:"</string>
|
||||
<string name="radio_info_gsm_disconnects_label">"GSM-Trennungen:"</string>
|
||||
<string name="radio_info_current_network_label">"Aktuelles Netzwerk:"</string>
|
||||
<string name="radio_info_data_successes_label">"Datenerfolge:"</string>
|
||||
<string name="radio_info_ppp_received_label">"PPP empfangen:"</string>
|
||||
<string name="radio_info_gsm_service_label">"GSM-Service"</string>
|
||||
<string name="radio_info_signal_strength_label">"Signalstärke:"</string>
|
||||
<string name="radio_info_call_status_label">"Rufstatus:"</string>
|
||||
<string name="radio_info_ppp_sent_label">"PPP gesendet:"</string>
|
||||
<string name="radio_info_radio_resets_label">"Radiozurücksetzung:"</string>
|
||||
<string name="radio_info_message_waiting_label">"Nachricht liegt vor:"</string>
|
||||
<string name="radio_info_phone_number_label">"Telefonnummer:"</string>
|
||||
<string name="radio_info_band_mode_label">"Frequenzbereich auswählen"</string>
|
||||
<string name="radio_info_network_type_label">"Netzwerktyp:"</string>
|
||||
<string name="radio_info_set_perferred_label">"Bevorzugten Netzwerktyp festlegen:"</string>
|
||||
<string name="radio_info_ping_ipaddr">"IP-Adresse pingen:"</string>
|
||||
<string name="radio_info_ping_hostname">"Hostnamen pingen (www.google.com):"</string>
|
||||
<string name="radio_info_http_client_test">"HTTP Client-Test:"</string>
|
||||
<string name="radio_info_toggle_ciph_label">"Verschlüsselung wechseln"</string>
|
||||
<string name="ping_test_label">"Pingtest ausführen"</string>
|
||||
<string name="radio_info_smsc_label">"SMSC:"</string>
|
||||
<string name="radio_info_smsc_update_label">"Aktualisierung"</string>
|
||||
<string name="radio_info_smsc_refresh_label">"Aktualisieren"</string>
|
||||
<string name="band_mode_title">"GSM-/UMTS-Band festlegen"</string>
|
||||
<string name="band_mode_loading">"Bandliste wird geladen..."</string>
|
||||
<string name="band_mode_set">"Festlegen"</string>
|
||||
<string name="band_mode_failed">"Fehlgeschlagen"</string>
|
||||
<string name="band_mode_succeeded">"Erfolgreich"</string>
|
||||
<string name="ringer_volume_ringer_mode_label">"Klingeltonmodus"</string>
|
||||
<string name="ringer_volume_screen_increasing_text">"Ansteigender Klingelton"</string>
|
||||
<string name="ringer_volume_ringtone_label">"Klingelton"</string>
|
||||
<string name="ringer_volume_instructions">"Klingeltonlautstärke mithilfe der Lautstärketasten anpassen"</string>
|
||||
<string name="sdcard_changes_instructions">"Die Änderungen werden nach dem erneuten Anschließen des USB-Kabels übernommen."</string>
|
||||
<string name="sdcard_settings_screen_mass_storage_text">"USB-Massenspeicher aktivieren"</string>
|
||||
<string name="sdcard_settings_total_bytes_label">"Bytes insgesamt:"</string>
|
||||
<string name="sdcard_settings_not_present_status">"Keine SD-Karte"</string>
|
||||
<string name="sdcard_settings_available_bytes_label">"Verfügbare Bytes:"</string>
|
||||
<string name="sdcard_settings_mass_storage_status">"SD-Karte wird als Massenspeichergerät verwendet"</string>
|
||||
<string name="sdcard_settings_unmounted_status">"Die SD-Karte kann jetzt entfernt werden."</string>
|
||||
<string name="sdcard_settings_bad_removal_status">"Die SD-Karte wurde während der Verwendung entfernt!"</string>
|
||||
<string name="sdcard_settings_used_bytes_label">"Verwendete Bytes:"</string>
|
||||
<string name="sdcard_settings_scanning_status">"SD-Karte wird auf Medien gescannt..."</string>
|
||||
<string name="sdcard_settings_read_only_status">"SD-Karte schreibgeschützt aktiviert"</string>
|
||||
<string name="sdcard_removal_alert_title">"Unsichere Entfernung der SD-Karte!"</string>
|
||||
<string name="sdcard_unmountable_alert_title">"SD-Karte nicht lesbar"</string>
|
||||
<string name="telephony_user_label">"Nutzer:"</string>
|
||||
<string name="telephony_server_label">"Server:"</string>
|
||||
<string name="telephony_name_label">"Name:"</string>
|
||||
<string name="telephony_mmsc_label">"MMSC:"</string>
|
||||
<string name="telephony_apn_label">"APN:"</string>
|
||||
<string name="telephony_mcc_label">"MCC:"</string>
|
||||
<string name="telephony_port_label">"Port:"</string>
|
||||
<string name="telephony_password_label">"Passwort:"</string>
|
||||
<string name="telephony_proxy_label">"Proxy:"</string>
|
||||
<string name="telephony_mnc_label">"MNC:"</string>
|
||||
<string name="telephony_mmsproxy_label">"MMS-Proxy:"</string>
|
||||
<string name="telephony_mmsport_label">"MMS-Port:"</string>
|
||||
<string name="next_label">"Weiter"</string>
|
||||
<string name="language_picker_title">"Sprache"</string>
|
||||
<string name="select_your_language">"Sprache auswählen"</string>
|
||||
<string name="activity_picker_label">"Aktion auswählen"</string>
|
||||
<string name="device_info_label">"Geräteinfo"</string>
|
||||
<string name="battery_info_label">"Akkuinfo"</string>
|
||||
<string name="display_label">"Display"</string>
|
||||
<string name="phone_info_label">"Telefoninfo"</string>
|
||||
<string name="sd_card_settings_label">"SD-Karte"</string>
|
||||
<string name="proxy_settings_label">"Proxy-Einstellungen"</string>
|
||||
<string name="cancel">"Abbrechen"</string>
|
||||
<string name="settings_label">"Einstellungen"</string>
|
||||
<string name="airplane_mode">"Flugmodus"</string>
|
||||
<!-- no translation found for airplane_mode_summary (3154817401368780988) -->
|
||||
<skip />
|
||||
<string name="airplane_mode_turning_on">"Wireless-Verbindungen werden deaktiviert..."</string>
|
||||
<string name="airplane_mode_turning_off">"Wireless-Verbindungen werden aktiviert..."</string>
|
||||
<string name="radio_controls_title">"Wireless"</string>
|
||||
<string name="radio_controls_summary">"WLAN, Bluetooth, Flugmodus und mobile Netzwerke verwalten"</string>
|
||||
<string name="date_and_time_settings_title">"Datum und Uhrzeit"</string>
|
||||
<string name="date_and_time_settings_summary">"Datum, Uhrzeit, Zeitzone und Formate festlegen"</string>
|
||||
<string name="date_time_auto">"Automatisch"</string>
|
||||
<string name="date_time_auto_summaryOn">"Vom Netzwerk bereitgestellte Werte verwenden"</string>
|
||||
<string name="date_time_auto_summaryOff">"Vom Netzwerk bereitgestellte Werte verwenden"</string>
|
||||
<string name="date_time_24hour">"24-Stunden-Format"</string>
|
||||
<string name="date_time_set_time">"Uhrzeit festlegen"</string>
|
||||
<!-- no translation found for date_time_set_timezone (5045627174274377814) -->
|
||||
<skip />
|
||||
<string name="date_time_set_date">"Datum festlegen"</string>
|
||||
<string name="date_time_date_format">"Datumsformat auswählen"</string>
|
||||
<!-- no translation found for zone_list_menu_sort_alphabetically (5683377702671088588) -->
|
||||
<skip />
|
||||
<!-- no translation found for zone_list_menu_sort_by_timezone (2720190443744884114) -->
|
||||
<skip />
|
||||
<string name="security_settings_title">"Sicherheit und Standort"</string>
|
||||
<!-- no translation found for security_settings_summary (8145883103362174000) -->
|
||||
<skip />
|
||||
<string name="security_passwords_title">"Passwörter"</string>
|
||||
<string name="bluetooth_quick_toggle_title">"Bluetooth"</string>
|
||||
<!-- no translation found for bluetooth_quick_toggle_summary (5293641680139873341) -->
|
||||
<skip />
|
||||
<string name="bluetooth_settings">"Bluetooth-Einstellungen"</string>
|
||||
<string name="bluetooth_settings_title">"Bluetooth-Einstellungen"</string>
|
||||
<string name="bluetooth_settings_summary">"Verbindungen, Gerätenamen und Erkennbarkeit verwalten"</string>
|
||||
<!-- no translation found for bluetooth_pin_entry (5627349871303455279) -->
|
||||
<skip />
|
||||
<string name="bluetooth_device_info">"Bluetooth-Geräteinfo"</string>
|
||||
<string name="bluetooth_pairing_msg">"Pairing…"</string>
|
||||
<!-- no translation found for bluetooth_enter_pin_msg (7551139612735632370) -->
|
||||
<skip />
|
||||
<!-- no translation found for bluetooth_error_title (538287072376677166) -->
|
||||
<skip />
|
||||
<!-- no translation found for bluetooth_pairing_error_message (2852744547246910349) -->
|
||||
<skip />
|
||||
<!-- no translation found for bluetooth_pairing_alternate_error_message (1731286765420671521) -->
|
||||
<skip />
|
||||
<!-- no translation found for bluetooth_pairing_pin_error_message (6938408362011024289) -->
|
||||
<skip />
|
||||
<!-- no translation found for bluetooth_connecting_error_message (1779660510084746802) -->
|
||||
<skip />
|
||||
<string name="bluetooth_new_data">"Neue Daten eingeben"</string>
|
||||
<string name="bluetooth_new_data_confirm">"OK"</string>
|
||||
<string name="bluetooth_new_data_cancel">"Abbrechen"</string>
|
||||
<string name="bluetooth_scan_for_new_devices">"Scannen nach neuen Geräten..."</string>
|
||||
<string name="bluetooth_discoverability_panel_title">"Aktion:"</string>
|
||||
<string name="bluetooth_discoverable">"Für <xliff:g id="DISCOVERABLE_TIME_PERIOD">%1$s</xliff:g> Sekunden sichtbar"</string>
|
||||
<string name="bluetooth_connectable">"Verbindung möglich"</string>
|
||||
<string name="bluetooth_neither">"Erkennung und Verbindung nicht möglich"</string>
|
||||
<!-- no translation found for bluetooth_preference_scan_title (2277464653118896016) -->
|
||||
<skip />
|
||||
<!-- no translation found for bluetooth_preference_scan_summary (2368330460781052669) -->
|
||||
<skip />
|
||||
<!-- no translation found for bluetooth_device_context_connect (3997659895003244941) -->
|
||||
<skip />
|
||||
<!-- no translation found for bluetooth_device_context_disconnect (8220072022970148683) -->
|
||||
<skip />
|
||||
<!-- no translation found for bluetooth_device_context_pair_connect (7611522504813927727) -->
|
||||
<skip />
|
||||
<!-- no translation found for bluetooth_device_context_unpair (662992425948536144) -->
|
||||
<skip />
|
||||
<!-- no translation found for bluetooth_device_context_disconnect_unpair (7644014238070043798) -->
|
||||
<skip />
|
||||
<!-- no translation found for bluetooth_device_context_connect_advanced (2643129703569788771) -->
|
||||
<skip />
|
||||
<!-- no translation found for bluetooth_connect_specific_profiles_title (6952214406025825164) -->
|
||||
<skip />
|
||||
<!-- no translation found for bluetooth_profile_a2dp (3259633293424539529) -->
|
||||
<skip />
|
||||
<!-- no translation found for bluetooth_profile_headset (1874975688666658946) -->
|
||||
<skip />
|
||||
<!-- no translation found for bluetooth_summary_connected_to_a2dp (510833839847758664) -->
|
||||
<skip />
|
||||
<!-- no translation found for bluetooth_summary_connected_to_headset (4876496372728623918) -->
|
||||
<skip />
|
||||
<!-- no translation found for bluetooth_summary_connected_to_a2dp_headset (3045032710457800891) -->
|
||||
<skip />
|
||||
<!-- no translation found for bluetooth_device_advanced_title (528816860793581131) -->
|
||||
<skip />
|
||||
<!-- no translation found for bluetooth_device_advanced_online_mode_title (3689050071425683114) -->
|
||||
<skip />
|
||||
<!-- no translation found for bluetooth_device_advanced_online_mode_summary (1204424107263248336) -->
|
||||
<skip />
|
||||
<!-- no translation found for bluetooth_device_advanced_profile_header_title (3764437426089639639) -->
|
||||
<skip />
|
||||
<!-- no translation found for bluetooth_a2dp_profile_summary_connected (963376081347721598) -->
|
||||
<skip />
|
||||
<!-- no translation found for bluetooth_headset_profile_summary_connected (7661070206715520671) -->
|
||||
<skip />
|
||||
<!-- no translation found for bluetooth_a2dp_profile_summary_use_for (4630849022250168427) -->
|
||||
<skip />
|
||||
<!-- no translation found for bluetooth_headset_profile_summary_use_for (8705753622443862627) -->
|
||||
<skip />
|
||||
<string name="wifi">"WLAN"</string>
|
||||
<string name="wifi_quick_toggle_title">"WLAN"</string>
|
||||
<!-- no translation found for wifi_quick_toggle_summary (1047950931623694366) -->
|
||||
<skip />
|
||||
<string name="wifi_settings">"WLAN-Einstellungen"</string>
|
||||
<string name="wifi_settings_category">"WLAN-Einstellungen"</string>
|
||||
<string name="wifi_settings_summary">"Wireless-Zugangspunkte festlegen und verwalten"</string>
|
||||
<string name="forget_network">"Entfernen"</string>
|
||||
<string name="wifi_status">"Status"</string>
|
||||
<string name="wifi_link_speed">"Geschwindigkeit"</string>
|
||||
<string name="wifi_signal_3">"Ausgezeichnet"</string>
|
||||
<string name="wifi_signal_2">"OK"</string>
|
||||
<string name="wifi_signal_1">"Gut"</string>
|
||||
<string name="wifi_signal_0">"Schwach"</string>
|
||||
<string name="security">"Sicherheit"</string>
|
||||
<string name="wifi_security_open">"Öffnen"</string>
|
||||
<string name="wifi_security_wep">"WEP"</string>
|
||||
<string name="wifi_security_wpa">"WPA"</string>
|
||||
<string name="wifi_security_wpa2">"WPA2"</string>
|
||||
<string name="wifi_security_unknown">"Unbekannt"</string>
|
||||
<string name="wifi_security_verbose_open">"Offenes Netzwerk"</string>
|
||||
<string name="wifi_security_verbose_wep">"Gesichert mit WEP"</string>
|
||||
<string name="wifi_security_verbose_wpa">"Gesichert mit WPA"</string>
|
||||
<string name="wifi_security_verbose_wpa2">"Gesichert mit WPA2"</string>
|
||||
<string name="ip_address">"IP-Adresse"</string>
|
||||
<string name="signal">"Signalstärke"</string>
|
||||
<string name="wifi_starting">"Aktivierung..."</string>
|
||||
<string name="wifi_stopping">"Wird beendet..."</string>
|
||||
<string name="wifi_error">"Fehler"</string>
|
||||
<string name="error_starting">"WLAN kann nicht gestartet werden"</string>
|
||||
<string name="error_stopping">"WLAN kann nicht beendet werden"</string>
|
||||
<string name="error_scanning">"Netzwerkscan nicht möglich"</string>
|
||||
<string name="error_connecting">"Netzwerkverbindung kann nicht hergestellt werden"</string>
|
||||
<string name="error_saving">"Netzwerk kann nicht gespeichert werden"</string>
|
||||
<string name="connect">"Verbinden"</string>
|
||||
<string name="connect_to_blank">"Mit <xliff:g id="NETWORK_NAME">%1$s</xliff:g> verbinden"</string>
|
||||
<string name="please_type_passphrase">"Passwort für Wireless-Zugang"</string>
|
||||
<string name="please_type_hex_key">"WEP Hexadezimalschlüssel (0-9, A-F)"</string>
|
||||
<string name="wifi_show_password">"Passwort anzeigen"</string>
|
||||
<string name="scan_wifi">"Scannen"</string>
|
||||
<string name="summary_not_in_range">"Nicht in Reichweite"</string>
|
||||
<string name="summary_remembered">"Gespeichert"</string>
|
||||
<string name="summary_connection_failed">"Verbindung fehlgeschlagen, versuchen Sie es erneut."</string>
|
||||
<string name="wifi_access_points">"WLAN-Netzwerke"</string>
|
||||
<!-- no translation found for wifi_type_ssid (1326839657083292017) -->
|
||||
<skip />
|
||||
<string name="wifi_security">"Sicherheit"</string>
|
||||
<string name="wifi_save_config">"Speichern"</string>
|
||||
<string name="wifi_password_unchanged">"(nicht geändert)"</string>
|
||||
<!-- no translation found for wifi_add_other_network (5499063300755575893) -->
|
||||
<skip />
|
||||
<string name="wifi_notify_open_networks">"Netzwerkhinweis"</string>
|
||||
<string name="wifi_notify_open_networks_summary">"Benachrichtigen, wenn ein offenes Netzwerk verfügbar ist"</string>
|
||||
<string name="wifi_password_incorrect_error">"Das eingegebene Netzwerkpasswort ist falsch. Bitte versuchen Sie es erneut."</string>
|
||||
<string name="wifi_generic_connection_error">"Beim Herstellen der Netzwerkverbindung ist ein Problem aufgetreten. Bitte versuchen Sie es erneut."</string>
|
||||
<string name="wifi_menu_advanced">"Erweitert"</string>
|
||||
<string name="wifi_ip_settings_titlebar">"IP-Einstellungen"</string>
|
||||
<string name="wifi_ip_settings_menu_save">"Speichern"</string>
|
||||
<string name="wifi_ip_settings_menu_cancel">"Abbrechen"</string>
|
||||
<string name="wifi_ip_settings_invalid_ip">"Bitte geben Sie eine gültige IP-Adresse ein."</string>
|
||||
<string name="wifi_use_static_ip">"Statische IP verwenden"</string>
|
||||
<string name="wifi_ip_address">"IP-Adresse"</string>
|
||||
<string name="wifi_dns1">"DNS 1"</string>
|
||||
<string name="wifi_dns2">"DNS 2"</string>
|
||||
<string name="wifi_gateway">"Gateway"</string>
|
||||
<string name="wifi_netmask">"Netmask"</string>
|
||||
<string name="wifi_context_menu_connect">"Mit Netzwerk verbinden"</string>
|
||||
<string name="wifi_context_menu_forget">"Netzwerk entfernen"</string>
|
||||
<string name="wifi_context_menu_change_password">"Passwort ändern"</string>
|
||||
<!-- no translation found for wifi_advanced_titlebar (5419052271935350999) -->
|
||||
<skip />
|
||||
<!-- no translation found for wifi_setting_num_channels_title (694031537019656132) -->
|
||||
<skip />
|
||||
<!-- no translation found for wifi_setting_num_channels_summary (4889355096717099141) -->
|
||||
<skip />
|
||||
<!-- no translation found for wifi_setting_num_channels_error (5765443843427870721) -->
|
||||
<skip />
|
||||
<!-- no translation found for wifi_setting_num_channels_channel_phrase (1269381923672908636) -->
|
||||
<skip />
|
||||
<!-- no translation found for wifi_advanced_mac_address_title (6571335466330978393) -->
|
||||
<skip />
|
||||
<string name="fragment_status_scanning">"Scannen…"</string>
|
||||
<string name="fragment_status_connecting">"Verbindung mit <xliff:g id="NETWORK_NAME">%1$s</xliff:g> wird hergestellt..."</string>
|
||||
<string name="fragment_status_authenticating">"Authentifizierung mit <xliff:g id="NETWORK_NAME">%1$s</xliff:g>..."</string>
|
||||
<string name="fragment_status_obtaining_ip">"IP-Adresse wird von <xliff:g id="NETWORK_NAME">%1$s</xliff:g> abgerufen..."</string>
|
||||
<string name="fragment_status_connected">"Verbunden mit <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
|
||||
<string name="fragment_status_disconnecting">"Verbindung mit <xliff:g id="NETWORK_NAME">%1$s</xliff:g> wird getrennt..."</string>
|
||||
<string name="fragment_status_disconnected">"Nicht verbunden"</string>
|
||||
<string name="fragment_status_failed">"Fehlgeschlagen"</string>
|
||||
<string name="status_scanning">"Scannen…"</string>
|
||||
<string name="status_connecting">"Verbindung wird hergestellt..."</string>
|
||||
<string name="status_authenticating">"Authentifizierung..."</string>
|
||||
<string name="status_obtaining_ip">"Adresse wird abgerufen..."</string>
|
||||
<string name="status_connected">"Verbunden"</string>
|
||||
<string name="status_disconnecting">"Verbindung wird getrennt..."</string>
|
||||
<string name="status_disconnected">"Nicht verbunden"</string>
|
||||
<string name="status_failed">"Fehlgeschlagen"</string>
|
||||
<string name="sound_and_display_settings">"Sound und Display"</string>
|
||||
<string name="sound_settings">"Soundeinstellungen"</string>
|
||||
<string name="sound_and_display_settings_summary">"Klingeltöne, Benachrichtigungen und Helligkeit festlegen"</string>
|
||||
<string name="silent_mode_title">"Lautlosmodus"</string>
|
||||
<!-- no translation found for silent_mode_summary (9081534746589616108) -->
|
||||
<skip />
|
||||
<string name="ringtone_title">"Klingelton"</string>
|
||||
<string name="ringtone_summary">"Standardklingelton für eingehende Anrufe festlegen"</string>
|
||||
<string name="ring_volume_title">"Klingeltonlautstärke"</string>
|
||||
<string name="ring_volume_summary">"Lautstärke für eingehende Anrufe festlegen"</string>
|
||||
<string name="vibrate_title">"Vibration"</string>
|
||||
<string name="vibrate_summary">"Vibration für eingehende Anrufe"</string>
|
||||
<string name="notification_sound_title">"Benachrichtigungston"</string>
|
||||
<string name="notification_sound_summary">"Standard-Benachrichtigungston festlegen"</string>
|
||||
<string name="notification_sound_dialog_title">"Benachrichtigungston auswählen"</string>
|
||||
<string name="media_volume_title">"Medienlautstärke"</string>
|
||||
<string name="media_volume_summary">"Lautstärke für Musik und Videos festlegen"</string>
|
||||
<string name="dtmf_tone_enable_title">"Akustische Tastensounds"</string>
|
||||
<string name="dtmf_tone_enable_summary_on">"Bei Verwendung der Wähltastatur Sound abspielen"</string>
|
||||
<string name="dtmf_tone_enable_summary_off">"Bei Verwendung der Wähltastatur Sound abspielen"</string>
|
||||
<string name="sound_effects_enable_title">"Akustische Auswahl"</string>
|
||||
<string name="sound_effects_enable_summary_on">"Bei Display-Auswahl Sound abspielen"</string>
|
||||
<string name="sound_effects_enable_summary_off">"Bei Display-Auswahl Sound abspielen"</string>
|
||||
<string name="sync_settings">"Datensynchronisierung"</string>
|
||||
<string name="sync_settings_summary">"Auswählen, welche Anwendungen synchronisiert werden"</string>
|
||||
<!-- no translation found for sync_settings_header_general_settings (1940413055002651212) -->
|
||||
<skip />
|
||||
<!-- no translation found for sync_settings_header_application_settings (7055646124074397344) -->
|
||||
<skip />
|
||||
<string name="sync_too_many_deletes">"Löschbegrenzung überschritten"</string>
|
||||
<string name="sync_automatically">"Autom. Synchronisierung"</string>
|
||||
<string name="sync_enabled">"Daten automatisch synchronisieren"</string>
|
||||
<string name="sync_disabled">"Zur automatischen Datensynchronisierung auswählen"</string>
|
||||
<string name="sync_menu_sync_now">"Jetzt synchronisieren"</string>
|
||||
<string name="sync_menu_sync_cancel">"Synchronisierung abbrechen"</string>
|
||||
<string name="sync_gmail">"Google Mail"</string>
|
||||
<string name="sync_calendar">"Google Kalender"</string>
|
||||
<string name="sync_contacts">"Kontakte"</string>
|
||||
<string name="sync_too_many_deletes_desc">"Für <xliff:g id="TYPE_OF_SYNC">%2$s</xliff:g>, Konto <xliff:g id="ACCOUNT_NAME">%3$s</xliff:g>, liegen <xliff:g id="NUMBER_OF_DELETED_ITEMS">%1$d</xliff:g> gelöschte Elemente vor. Was möchten Sie tun?"</string>
|
||||
<string name="sync_really_delete">"Elemente löschen"</string>
|
||||
<string name="sync_undo_deletes">"Löschen rückgängig machen"</string>
|
||||
<string name="sync_do_nothing">"Im Moment nichts unternehmen"</string>
|
||||
<string name="sync_is_failing">"Bei der Synchronisierung treten derzeit Probleme auf. Sie wird in Kürze fortgesetzt."</string>
|
||||
<string name="sync_plug"><font fgcolor="#ffffffff">"Willkommen bei Google Sync!"</font>\n"Mit dieser Funktion von Google können Sie Ihre Daten synchronisieren, um auf Ihre Kontakte, Termine und vieles mehr zuzugreifen - wo immer Sie auch sind!"</string>
|
||||
<string name="display_settings">"Display-Einstellungen"</string>
|
||||
<!-- no translation found for animations_title (1062189037402346023) -->
|
||||
<skip />
|
||||
<!-- no translation found for animations_summary_on (5690787466633824737) -->
|
||||
<skip />
|
||||
<!-- no translation found for animations_summary_off (8847573219383668092) -->
|
||||
<skip />
|
||||
<string name="brightness">"Helligkeit"</string>
|
||||
<string name="screen_timeout">"Display-Timeout"</string>
|
||||
<string name="dim_screen">"Display dimmen"</string>
|
||||
<string name="sim_lock_settings">"Einstellungen"</string>
|
||||
<string name="sim_lock_settings_category">"SIM-Kartensperrung einrichten"</string>
|
||||
<string name="sim_lock_settings_title">"SIM-Kartensperrung"</string>
|
||||
<string name="sim_pin_toggle">"SIM-Karte sperren"</string>
|
||||
<string name="sim_lock_on">"PIN zur Verwendung des Telefons erforderlich"</string>
|
||||
<string name="sim_lock_off">"PIN zur Verwendung des Telefons erforderlich"</string>
|
||||
<!-- no translation found for sim_pin_change (6311414184279932368) -->
|
||||
<skip />
|
||||
<!-- no translation found for sim_enter_pin (6608715137008508432) -->
|
||||
<skip />
|
||||
<!-- no translation found for sim_enable_sim_lock (4517742794997166918) -->
|
||||
<skip />
|
||||
<!-- no translation found for sim_disable_sim_lock (7664729528754784824) -->
|
||||
<skip />
|
||||
<!-- no translation found for sim_enter_old (6074196344494634348) -->
|
||||
<skip />
|
||||
<!-- no translation found for sim_enter_new (8742727032729243562) -->
|
||||
<skip />
|
||||
<string name="sim_reenter_new">"Neue PIN erneut eingeben"</string>
|
||||
<!-- no translation found for sim_change_pin (7328607264898359112) -->
|
||||
<skip />
|
||||
<string name="sim_bad_pin">"Falsche PIN!"</string>
|
||||
<string name="sim_pins_dont_match">"Die PINs stimmen nicht überein!"</string>
|
||||
<string name="sim_change_failed">"PIN kann nicht geändert werden."\n"Möglicherweise falsche Eingabe."</string>
|
||||
<string name="sim_change_succeeded">"SIM-PIN erfolgreich geändert"</string>
|
||||
<string name="sim_lock_failed">"Status der SIM-Kartensperrung kann nicht geändert werden."\n"Möglicherweise falsche PIN."</string>
|
||||
<string name="sim_enter_ok">"OK"</string>
|
||||
<string name="sim_enter_cancel">"Abbrechen"</string>
|
||||
<string name="device_info_settings">"Telefonstatus"</string>
|
||||
<!-- no translation found for system_update_settings_list_item_title (3342887311059985961) -->
|
||||
<skip />
|
||||
<!-- no translation found for system_update_settings_list_item_summary (9164660818865695219) -->
|
||||
<skip />
|
||||
<string name="firmware_version">"Firmware-Version"</string>
|
||||
<string name="model_number">"Modellnummer"</string>
|
||||
<string name="baseband_version">"Basisband-Version"</string>
|
||||
<string name="kernel_version">"Kernel-Version"</string>
|
||||
<string name="build_number">"Build-Nummer"</string>
|
||||
<string name="device_info_not_available">"Nicht verfügbar"</string>
|
||||
<string name="device_status_activity_title">"Status"</string>
|
||||
<string name="device_status">"Status"</string>
|
||||
<string name="device_status_summary">"IMEI, Telefonnummer, Signal usw."</string>
|
||||
<string name="storage_settings_title">"SD-Karte und Speicher"</string>
|
||||
<string name="storage_settings_summary">"SD-Karte entnehmen, verfügbaren Speicher anzeigen"</string>
|
||||
<string name="status_number">"Telefonnummer"</string>
|
||||
<string name="status_network_type">"Netzwerktyp"</string>
|
||||
<string name="status_data_state">"Datenzugang"</string>
|
||||
<string name="status_service_state">"Servicestatus"</string>
|
||||
<string name="status_signal_strength">"Signalstärke"</string>
|
||||
<string name="status_roaming">"Roaming"</string>
|
||||
<string name="status_operator">"Netzwerk"</string>
|
||||
<string name="status_wifi_mac_address">"WLAN-MAC-Adresse"</string>
|
||||
<string name="status_bt_address">"Bluetooth-Adresse"</string>
|
||||
<string name="status_unavailable">"Nicht verfügbar"</string>
|
||||
<string name="status_up_time">"Betriebszeit"</string>
|
||||
<string name="status_awake_time">"Aktivzeit"</string>
|
||||
<string name="internal_memory">"Interner Telefonspeicher"</string>
|
||||
<string name="sd_memory">"SD-Karte"</string>
|
||||
<string name="memory_available">"Verfügbarer Speicher"</string>
|
||||
<string name="memory_size">"Gesamtspeicher"</string>
|
||||
<string name="sd_eject">"SD-Karte entnehmen"</string>
|
||||
<string name="sd_unavailable">"Nicht verfügbar"</string>
|
||||
<string name="read_only">"(schreibgeschützt)"</string>
|
||||
<string name="battery_status_title">"Akkustatus"</string>
|
||||
<string name="battery_level_title">"Akkuladung"</string>
|
||||
<string name="apn_settings">"APNs"</string>
|
||||
<string name="apn_edit">"Zugangspunkt bearbeiten"</string>
|
||||
<string name="apn_not_set">"Nicht festgelegt"</string>
|
||||
<string name="apn_name">"Name"</string>
|
||||
<string name="apn_apn">"APN"</string>
|
||||
<string name="apn_http_proxy">"Proxy"</string>
|
||||
<string name="apn_http_port">"Port"</string>
|
||||
<string name="apn_user">"Nutzername"</string>
|
||||
<string name="apn_password">"Passwort"</string>
|
||||
<string name="apn_server">"Server"</string>
|
||||
<string name="apn_mmsc">"MMSC"</string>
|
||||
<string name="apn_mms_proxy">"MMS-Proxy"</string>
|
||||
<string name="apn_mms_port">"MMS-Port"</string>
|
||||
<string name="apn_mcc">"MCC"</string>
|
||||
<string name="apn_mnc">"MNC"</string>
|
||||
<string name="apn_type">"APN-Typ"</string>
|
||||
<string name="menu_delete">"APN löschen"</string>
|
||||
<string name="menu_new">"Neuer APN"</string>
|
||||
<string name="menu_save">"Speichern"</string>
|
||||
<string name="menu_cancel">"Verwerfen"</string>
|
||||
<string name="error_title">"Achtung"</string>
|
||||
<string name="error_name_empty">"Das Namensfeld darf nicht leer sein."</string>
|
||||
<string name="error_apn_empty">"Der APN darf nicht leer sein."</string>
|
||||
<string name="error_mcc_not3">"Das MCC-Feld muss 3 Zeichen enthalten."</string>
|
||||
<string name="error_mnc_not23">"Das MNC-Feld muss 2 oder 3 Zeichen enthalten."</string>
|
||||
<string name="master_clear_title">"Auf Werkszustand zurück"</string>
|
||||
<string name="master_clear_summary">"Löscht alle Daten auf dem Telefon"</string>
|
||||
<string name="master_clear_desc">"Durch diese Aktion wird das Telefon auf den Werkszustand zurückgesetzt. Alle Daten und heruntergeladenen Anwendungen werden gelöscht!"</string>
|
||||
<string name="master_clear_button_text">"Telefon zurücksetzen"</string>
|
||||
<string name="master_clear_final_desc">"Telefon zurücksetzen und alle Ihre Daten und Anwendungen löschen? Die Aktion kann nicht rückgängig gemacht werden!"</string>
|
||||
<string name="master_clear_final_button_text">"Alles löschen"</string>
|
||||
<!-- no translation found for master_clear_gesture_prompt (1428645764883536750) -->
|
||||
<skip />
|
||||
<string name="master_clear_gesture_explanation">"Sie müssen Ihr Entsperrungsmuster eingeben, um das Zurücksetzen des Telefons zu bestätigen."</string>
|
||||
<string name="master_clear_failed">"Die Zurücksetzung konnte nicht durchgeführt werden, da der Service zur Systembereinigung nicht verfügbar ist."</string>
|
||||
<string name="call_settings_title">"Anrufeinstellungen"</string>
|
||||
<string name="call_settings_summary">"Mailbox, Anrufweiterleitung, Anklopfen, Anruferkennung einrichten"</string>
|
||||
<string name="network_settings_title">"Mobile Netzwerke"</string>
|
||||
<string name="network_settings_summary">"Optionen für Roaming, Netzwerke, APNs festlegen"</string>
|
||||
<string name="location_title">"Standortquellen"</string>
|
||||
<string name="location_network_based">"Wireless nutzen"</string>
|
||||
<string name="location_networks_disabled">"Standort über Wireless-Netzwerke anzeigen (z.B. in Google Maps)"</string>
|
||||
<string name="location_neighborhood_level">"Standort bestimmt von WLAN und/oder mobilen Netzwerken"</string>
|
||||
<string name="location_gps">"GPS-Satelliten aktivieren"</string>
|
||||
<string name="location_street_level">"Auf Straßenebene lokalisieren (deaktivieren, um Akku zu sparen)"</string>
|
||||
<string name="location_gps_disabled">"Auf Straßenebene lokalisieren (höhere Akkuleistung, zusätzl. Himmelsansicht)"</string>
|
||||
<string name="about_settings">"Telefoninfo"</string>
|
||||
<string name="about_settings_summary">"Rechtliche Hinweise, Telefonstatus und Softwareversion anzeigen"</string>
|
||||
<string name="legal_information">"Rechtliche Hinweise"</string>
|
||||
<string name="contributors_title">"Mitwirkende"</string>
|
||||
<string name="copyright_title">"Urheberrecht"</string>
|
||||
<string name="license_title">"Lizenz"</string>
|
||||
<string name="terms_title">"Nutzungsbedingungen"</string>
|
||||
<string name="settings_license_activity_title">"Open Source-Lizenzen"</string>
|
||||
<string name="settings_license_activity_unavailable">"Beim Laden der Lizenzen ist ein Problem aufgetreten."</string>
|
||||
<string name="settings_license_activity_loading">"Wird geladen..."</string>
|
||||
<string name="lock_settings_title">"Display-Entsperrungsmuster"</string>
|
||||
<string name="lockpattern_change_lock_pattern_label">"Entsperrungsmuster ändern"</string>
|
||||
<!-- no translation found for lockpattern_need_to_unlock (757935356911054465) -->
|
||||
<skip />
|
||||
<string name="lockpattern_need_to_unlock_wrong">"Versuchen Sie es bitte erneut:"</string>
|
||||
<!-- no translation found for lockpattern_recording_intro_header (308287052221942814) -->
|
||||
<skip />
|
||||
<string name="lockpattern_recording_intro_footer">"Menütaste drücken, um die Hilfe aufzurufen"</string>
|
||||
<string name="lockpattern_recording_inprogress">"Lassen Sie die Tasten los, wenn Sie fertig sind."</string>
|
||||
<string name="lockpattern_recording_incorrect_too_short">"Verbinden Sie mindestens <xliff:g id="NUMBER">%d</xliff:g> Punkte. Versuchen Sie es erneut:"</string>
|
||||
<string name="lockpattern_pattern_entered_header">"Muster wurde aufgezeichnet!"</string>
|
||||
<string name="lockpattern_need_to_confirm">"Zeichnen Sie das Muster zur Bestätigung erneut:"</string>
|
||||
<string name="lockpattern_pattern_confirmed_header">"Ihr neues Entsperrungsmuster:"</string>
|
||||
<string name="lockpattern_confirm_button_text">"Bestätigen"</string>
|
||||
<string name="lockpattern_restart_button_text">"Neu aufzeichnen"</string>
|
||||
<string name="lockpattern_retry_button_text">"Erneut versuchen"</string>
|
||||
<string name="lockpattern_continue_button_text">"Weiter"</string>
|
||||
<string name="lockpattern_settings_title">"Entsperrungsmuster"</string>
|
||||
<string name="lockpattern_settings_enable_title">"Muster erforderlich"</string>
|
||||
<string name="lockpattern_settings_enable_summary">"Zum Entsperren muss ein Muster gezeichnet werden"</string>
|
||||
<string name="lockpattern_settings_enable_visible_pattern_title">"Muster sichtbar"</string>
|
||||
<!-- no translation found for lockpattern_settings_enable_tactile_feedback_title (972174133075372341) -->
|
||||
<skip />
|
||||
<string name="lockpattern_settings_choose_lock_pattern">"Entsperrungsmuster"</string>
|
||||
<string name="lockpattern_settings_change_lock_pattern">"Muster ändern"</string>
|
||||
<!-- no translation found for lockpattern_settings_help_how_to_record (2614673439060830433) -->
|
||||
<skip />
|
||||
<string name="lockpattern_too_many_failed_confirmation_attempts_header">"Zu viele fehlgeschlagene Versuche!"</string>
|
||||
<string name="lockpattern_too_many_failed_confirmation_attempts_footer">"In <xliff:g id="NUMBER">%d</xliff:g> Sekunden erneut versuchen."</string>
|
||||
<string name="skip_button_label">"Abbrechen"</string>
|
||||
<string name="next_button_label">"Weiter"</string>
|
||||
<string name="lock_title">"Sichern Ihres Telefons"</string>
|
||||
<string name="lock_intro_message"><font size="17">"Schützen Sie Ihr Telefon vor unerlaubter Verwendung, indem Sie ein persönliches Entsperrungsmuster erstellen. "\n<font height="17">\n</font><b>"1"</b>" Auf dem nächsten Bildschirm sehen Sie, wie ein Beispielmuster gezeichnet wird. "\n<font height="17">\n</font><b>"2"</b>" Anschließend können Sie Ihr eigenes Entsperrungsmuster aufzeichnen. Sie können verschiedene Muster ausprobieren, müssen jedoch immer mindestens vier Punkte miteinander verbinden. "\n<font height="17">\n</font><b>"3"</b>" Zeichnen Sie Ihr Muster zur Bestätigung erneut. "\n<font height="17">\n</font><b>"Bereit? Wählen Sie “Weiter”"</b>". "\n<font height="3">\n</font>"Wählen Sie “Abbrechen”, wenn Sie Ihr Telefon nicht schützen möchten."</font></string>
|
||||
<string name="lock_example_title">"Beispielmuster"</string>
|
||||
<string name="lock_example_message">"Verbinden Sie mindestens vier Punkte."\n" "\n"Wählen Sie \"Weiter\", um ein eigenes Muster aufzuzeichnen."</string>
|
||||
<string name="manageapplications_settings_title">"Anwendungen verwalten"</string>
|
||||
<string name="applications_settings">"Anwendungen"</string>
|
||||
<string name="applications_settings_summary">"Anwendungen verwalten, Tastenkombinationen für Schnellstart einrichten"</string>
|
||||
<string name="applications_settings_header">"Anwendungen"</string>
|
||||
<string name="install_applications">"Unbekannte Quellen"</string>
|
||||
<string name="install_unknown_applications">"Installation von Nicht-Market-Anwendungen zulassen"</string>
|
||||
<string name="install_all_warning">"Anwendungen aus unbekannten Quellen können gefährlich für Ihr Telefon und Ihre persönlichen Daten sein. Sie stimmen zu, dass Sie die Verantwortung für alle Schäden an Ihrem Telefon oder jegliche Datenverluste tragen, die aus der Verwendung dieser Anwendungen entstehen können."</string>
|
||||
<string name="manage_applications_title">"Anwendungen verwalten"</string>
|
||||
<string name="application_info_label">"Anwendungsinfo"</string>
|
||||
<string name="storage_label">"Speicher"</string>
|
||||
<string name="auto_launch_label">"Standardmäßig starten"</string>
|
||||
<string name="permissions_label">"Berechtigungen"</string>
|
||||
<string name="total_size_label">"Insgesamt"</string>
|
||||
<string name="application_size_label">"Anwendung"</string>
|
||||
<string name="data_size_label">"Daten"</string>
|
||||
<string name="uninstall_text">"Deinstallieren"</string>
|
||||
<string name="clear_user_data_text">"Daten löschen"</string>
|
||||
<string name="auto_launch_enable_text">"Sie haben diese Anwendung für einige Aktionen als Standard festgelegt."</string>
|
||||
<string name="auto_launch_disable_text">"Kein Standard"</string>
|
||||
<string name="clear_activities">"Standardeinstellungen löschen"</string>
|
||||
<string name="unknown">"Unbekannt"</string>
|
||||
<string name="sort_order_alpha">"Alphabetisch sortieren"</string>
|
||||
<string name="sort_order_size">"Nach Größe sortieren (absteigend)"</string>
|
||||
<string name="manage_space_text">"Speicherplatz verwalten"</string>
|
||||
<!-- no translation found for filter_apps_all (5362458533526576243) -->
|
||||
<skip />
|
||||
<!-- no translation found for filter_apps_third_party (6478735462006756182) -->
|
||||
<skip />
|
||||
<!-- no translation found for filter_apps_running (4508709081284629440) -->
|
||||
<skip />
|
||||
<!-- no translation found for loading (3200408047793887917) -->
|
||||
<skip />
|
||||
<string name="recompute_size">"Größe wird neu berechnet..."</string>
|
||||
<string name="clear_data_dlg_title">"Löschen"</string>
|
||||
<string name="clear_data_dlg_text">"Alle in dieser Anwendung gespeicherten Informationen werden endgültig gelöscht."</string>
|
||||
<string name="dlg_ok">"OK"</string>
|
||||
<string name="dlg_cancel">"Abbrechen"</string>
|
||||
<string name="app_not_found_dlg_title">"Anwendung nicht gefunden"</string>
|
||||
<string name="app_not_found_dlg_text">"Diese Anwendung wurde in der Liste der installierten Anwendungen nicht gefunden."</string>
|
||||
<string name="clear_data_failed">"Anwendungsdaten können nicht gelöscht werden."</string>
|
||||
<!-- no translation found for security_settings_desc (3116027624526915561) -->
|
||||
<skip />
|
||||
<!-- no translation found for computing_size (8865983009275200301) -->
|
||||
<skip />
|
||||
<!-- no translation found for invalid_size_value (1901940003700269523) -->
|
||||
<skip />
|
||||
<!-- no translation found for empty_list_msg (723420725041278150) -->
|
||||
<skip />
|
||||
<string name="language_settings">"Gebietsschema und Text"</string>
|
||||
<!-- no translation found for language_settings_summary (595647729475399987) -->
|
||||
<skip />
|
||||
<string name="language_category">"Ländereinstellung"</string>
|
||||
<string name="text_category">"Texteinstellungen"</string>
|
||||
<string name="phone_language">"Sprache wählen"</string>
|
||||
<string name="auto_replace">"Autom. Ersetzung"</string>
|
||||
<string name="auto_replace_summary">"Tippfehler korrigieren"</string>
|
||||
<string name="auto_caps">"Autom. Großschreibung"</string>
|
||||
<string name="auto_caps_summary">"Jeden Satz mit einem Großbuchstaben beginnen"</string>
|
||||
<string name="auto_punctuate">"Autom. Zeichensetzung"</string>
|
||||
<string name="auto_punctuate_summary">"Leertaste zweimal drücken, um \".\" hinzuzufügen"</string>
|
||||
<string name="show_password">"Sichtbare Passwörter"</string>
|
||||
<string name="show_password_summary">"Passwort bei der Eingabe anzeigen"</string>
|
||||
<string name="testing">"Test"</string>
|
||||
<string name="testing_phone_info">"Telefoninformation"</string>
|
||||
<string name="testing_battery_info">"Akkuinformationen"</string>
|
||||
<string name="quick_launch_title">"Schnellstart"</string>
|
||||
<string name="quick_launch_summary">"Tastenkombinationen zum Starten von Anwendungen festlegen"</string>
|
||||
<string name="quick_launch_assign_application">"Anwendung zuweisen"</string>
|
||||
<string name="quick_launch_no_shortcut">"Keine Tastenkombination"</string>
|
||||
<string name="quick_launch_shortcut">"Suchen + <xliff:g id="SHORTCUT_LETTER">%1$s</xliff:g>"</string>
|
||||
<string name="quick_launch_clear_dialog_title">"Löschen"</string>
|
||||
<string name="quick_launch_clear_dialog_message">"Die Tastenkombination für <xliff:g id="SHORTCUT_LETTER">%1$s</xliff:g> (<xliff:g id="APPLICATION_NAME">%2$s</xliff:g>) wird gelöscht."</string>
|
||||
<string name="quick_launch_clear_ok_button">"OK"</string>
|
||||
<string name="quick_launch_clear_cancel_button">"Abbrechen"</string>
|
||||
<string name="quick_launch_display_mode_applications">"Anwendungen"</string>
|
||||
<string name="quick_launch_display_mode_shortcuts">"Tastenkombinationen"</string>
|
||||
<!-- no translation found for input_methods_settings_title (6800066636850553887) -->
|
||||
<skip />
|
||||
<!-- no translation found for input_methods_settings_summary (7571173442946675205) -->
|
||||
<skip />
|
||||
<string name="development_settings_title">"Entwicklung"</string>
|
||||
<!-- no translation found for development_settings_summary (2151320488701538355) -->
|
||||
<skip />
|
||||
<string name="enable_adb">"USB-Debugging"</string>
|
||||
<string name="enable_adb_summary">"Debugmodus bei Anschluss eines USB-Geräts"</string>
|
||||
<string name="keep_screen_on">"Aktiv bleiben"</string>
|
||||
<string name="keep_screen_on_summary">"Display wird beim Laden nie in den Ruhezustand versetzt"</string>
|
||||
<!-- no translation found for allow_mock_location (2787962564578664888) -->
|
||||
<skip />
|
||||
<!-- no translation found for allow_mock_location_summary (317615105156345626) -->
|
||||
<skip />
|
||||
</resources>
|
@@ -1,700 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
|
||||
<string name="about_settings">À propos du téléphone</string>
|
||||
<string name="about_settings_summary">Afficher les infos légales, l\'état du téléphone, la version logicielle</string>
|
||||
<string name="activity_picker_label">Sélectionner l\'activité</string>
|
||||
<string name="airplane_mode">Mode Avion</string>
|
||||
<string name="airplane_mode_summary">Sélectionner pour désactiver toutes connexions sans fil</string>
|
||||
<string name="airplane_mode_turning_off">Activation des connexions sans fil\u2026</string>
|
||||
<string name="airplane_mode_turning_on">Désactivation des connexions sans fil\u2026</string>
|
||||
<string name="android_id_label">ID Android</string>
|
||||
<string name="apn_apn">APN</string>
|
||||
<string name="apn_edit">Modifier le point d\'accès</string>
|
||||
<string name="apn_http_port">Port</string>
|
||||
<string name="apn_http_proxy">Proxy</string>
|
||||
<string name="apn_label">APN</string>
|
||||
<string name="apn_mcc">MCC</string>
|
||||
<string name="apn_mms_port">Port MMS</string>
|
||||
<string name="apn_mms_proxy">Proxy MMS</string>
|
||||
<string name="apn_mmsc">MMSC</string>
|
||||
<string name="apn_mnc">MNC</string>
|
||||
<string name="apn_name">Nom</string>
|
||||
<string name="apn_not_set"><Non défini></string>
|
||||
<string name="apn_password">Mot de passe</string>
|
||||
<string name="apn_server">Serveur</string>
|
||||
<string name="apn_settings">APN</string>
|
||||
<string name="apn_type">Type APN</string>
|
||||
<string name="apn_user">Nom d\'utilisateur</string>
|
||||
<string name="app_launcher_newView_text">Lanceur nouv.app</string>
|
||||
<string name="app_not_found_dlg_text"> L\'application n\'a pas été
|
||||
trouvée dans la liste des applications installées.</string>
|
||||
<string name="app_not_found_dlg_title">Application non trouvée</string>
|
||||
<string name="application_info_label">Infos d\'application</string>
|
||||
<string name="application_size_label">Application</string>
|
||||
<string name="applications_settings">Applications</string>
|
||||
<string name="applications_settings_header">Paramètres d\'application</string>
|
||||
<string name="applications_settings_summary">Gérer les applications, configurer des raccourcis de lancement rapide</string>
|
||||
<string name="auto_caps">Auto-maj</string>
|
||||
<string name="auto_caps_summary">Première lettre des phrases en majuscule</string>
|
||||
<string name="auto_launch_disable_text">Aucune valeur par défaut définie.</string>
|
||||
<string name="auto_launch_enable_text">Vous avez choisi de lancer cette application par défaut pour certaines actions.</string>
|
||||
<string name="auto_launch_label">Lancer par défaut</string>
|
||||
<string name="auto_punctuate">Auto-ponctuation</string>
|
||||
<string name="auto_punctuate_summary">Appuyez la touche Espace deux fois pour insérer \u0022.\u0022</string>
|
||||
<string name="auto_replace">Auto-remplacer</string>
|
||||
<string name="auto_replace_summary">Corriger les mots avec faute de frappe</string>
|
||||
<string name="autorotate">Auto-pivoter</string>
|
||||
<string name="autorotate_summary_off">Le changement de l\'orientation de l\'écran ne fait pas pivoter l\'application</string>
|
||||
<string name="autorotate_summary_on">Le changement de l\'orientation de l\'écran fait pivoter l\'application</string>
|
||||
<string name="b_text">B</string>
|
||||
<string name="band_mode_failed">Échec</string>
|
||||
<string name="band_mode_loading">Chargement de la liste de bandes\u2026</string>
|
||||
<string name="band_mode_set">Définir</string>
|
||||
<string name="band_mode_succeeded">Réussi</string>
|
||||
<string name="band_mode_title">Définir la bande GSM/UMTS</string>
|
||||
<string name="baseband_version">Version bande de base</string>
|
||||
<string name="basic_settings_title">Infos de base du téléphone</string>
|
||||
<string name="battery_info_awake_battery">Heures de réveil sur batterie :</string>
|
||||
<string name="battery_info_awake_plugged">Heures de réveil en charge :</string>
|
||||
<string name="battery_info_health_dead">Mort</string>
|
||||
<string name="battery_info_health_good">Bonne</string>
|
||||
<string name="battery_info_health_label">Santé de la batterie :</string>
|
||||
<string name="battery_info_health_over_voltage">Surtension</string>
|
||||
<string name="battery_info_health_overheat">Surchauffe</string>
|
||||
<string name="battery_info_health_unknown">Inconnu</string>
|
||||
<string name="battery_info_health_unspecified_failure">Erreur inconnue</string>
|
||||
<string name="battery_info_label">Infos de la batterie</string>
|
||||
<string name="battery_info_level_label">Niveau de la batterie :</string>
|
||||
<string name="battery_info_scale_label">Échelle de la batterie :</string>
|
||||
<string name="battery_info_screen_on">Durée d\'écran allumé :</string>
|
||||
<string name="battery_info_status_charging">Chargement</string>
|
||||
<string name="battery_info_status_charging_ac">(Secteur)</string>
|
||||
<string name="battery_info_status_charging_usb">(USB)</string>
|
||||
<string name="battery_info_status_discharging">Déchargement</string>
|
||||
<string name="battery_info_status_full">Pleine</string>
|
||||
<string name="battery_info_status_label">État de la batterie :</string>
|
||||
<string name="battery_info_status_not_charging">Pas en charge</string>
|
||||
<string name="battery_info_status_unknown">Inconnu</string>
|
||||
<string name="battery_info_technology_label">Technologie de la batterie :</string>
|
||||
<string name="battery_info_temperature_label">Température de la batterie :</string>
|
||||
<string name="battery_info_temperature_units">\u00B0 C</string>
|
||||
<string name="battery_info_uptime">Durée depuis l\'amorçage :</string>
|
||||
<string name="battery_info_voltage_label">Tension de la batterie :</string>
|
||||
<string name="battery_info_voltage_units">mV</string>
|
||||
<string name="battery_level_title">Niveau de la batterie</string>
|
||||
<string name="battery_status_title">État de la batterie</string>
|
||||
<string name="bluetooth">Bluetooth</string>
|
||||
<string name="bluetooth_clear_list">Effacer la liste d\'appareil</string>
|
||||
<string name="bluetooth_connect">Connecter</string>
|
||||
<string name="bluetooth_connectable">Connectable seulement</string>
|
||||
<string name="bluetooth_connected">Connecté</string>
|
||||
<string name="bluetooth_connecting">Connexion\u2026</string>
|
||||
<string name="bluetooth_device">mains-libres/casque</string>
|
||||
<string name="bluetooth_device_info">Infos d\'appareil Bluetooth</string>
|
||||
<string name="bluetooth_device_info_alias">Alias d\'appareil</string>
|
||||
<string name="bluetooth_device_info_delete">Retirer cet appareil</string>
|
||||
<string name="bluetooth_device_info_no_alias">Saisissez l\'alias ici\u2026</string>
|
||||
<string name="bluetooth_device_info_sdp">Lister les services pris en charge</string>
|
||||
<string name="bluetooth_device_name">Nom d\'appareil</string>
|
||||
<string name="bluetooth_devices">Appareils Bluetooth</string>
|
||||
<string name="bluetooth_disabled">Sélectionner d\'activer Bluetooth</string>
|
||||
<string name="bluetooth_disconnect">Déconnecter</string>
|
||||
<string name="bluetooth_disconnect_blank"><xliff:g id="device_name">%1$s</xliff:g> sera déconnecté</string>
|
||||
<string name="bluetooth_discoverability_panel_title">Me rendre\u2026</string>
|
||||
<string name="bluetooth_discoverable">Découvrable pendant %1$s secondes</string>
|
||||
<string name="bluetooth_enable_text">Bouton vide\u2026</string>
|
||||
<string name="bluetooth_enabled">Sélectionner d\'activer Bluetooth</string>
|
||||
<string name="bluetooth_enabling">Activation de Bluetooth\u2026</string>
|
||||
<string name="bluetooth_enter_pin_msg">Saisir le code PIN pour\u0020</string>
|
||||
<string name="bluetooth_failed_to_enable">Impossible d\'activer Bluetooth</string>
|
||||
<string name="bluetooth_is_discoverable">Découvrable pendant %1$s secondes\u2026</string>
|
||||
<string name="bluetooth_name_not_set">Pas de nom défini, utilise le nom de compte</string>
|
||||
<string name="bluetooth_neither">Pas découvrable et pas connectable</string>
|
||||
<string name="bluetooth_new_data">Saisir nouvelles données</string>
|
||||
<string name="bluetooth_new_data_cancel">Annuler</string>
|
||||
<string name="bluetooth_new_data_confirm">OK</string>
|
||||
<string name="bluetooth_not_connected">Lier avec cet appareil</string>
|
||||
<string name="bluetooth_not_discoverable">Sélectionner pour rendre l\'appareil découvrable</string>
|
||||
<string name="bluetooth_notif_message">Sélectionner de lier avec\u0020</string>
|
||||
<string name="bluetooth_notif_ticker">Liaison Bluetooth demandée</string>
|
||||
<string name="bluetooth_notif_title">Liaison Bluetooth demandée</string>
|
||||
<string name="bluetooth_pair">Lier</string>
|
||||
<string name="bluetooth_paired">Lié</string>
|
||||
<string name="bluetooth_paired_not_nearby">Lié</string>
|
||||
<string name="bluetooth_pairing">Liaison\u2026</string>
|
||||
<string name="bluetooth_pairing_msg">Liaison\u2026</string>
|
||||
<string name="bluetooth_pin_entry">Entrée de code PIN Bluetooth</string>
|
||||
<string name="bluetooth_quick_toggle_summary">Sélectionner d\'activer Bluetooth</string>
|
||||
<string name="bluetooth_quick_toggle_title">Bluetooth</string>
|
||||
<string name="bluetooth_scan_for_devices">Rechercher les appareils</string>
|
||||
<string name="bluetooth_scan_for_new_devices">Recherche de nouveaux appareils\u2026</string>
|
||||
<string name="bluetooth_scan_text">Bouton vide\u2026</string>
|
||||
<string name="bluetooth_settings">Paramètres Bluetooth</string>
|
||||
<string name="bluetooth_settings_summary">Gérer les connexions, définir le nom d\'appareil et la découvrabilité</string>
|
||||
<string name="bluetooth_settings_text">Bouton vide\u2026</string>
|
||||
<string name="bluetooth_settings_title">Paramètres Bluetooth</string>
|
||||
<string name="bluetooth_starting">Démarrage Bluetooth\u2026</string>
|
||||
<string name="bluetooth_stopping">Arrêt Bluetooth\u2026</string>
|
||||
<string name="bluetooth_unknown">Inconnu</string>
|
||||
<string name="bluetooth_unpair">Délier</string>
|
||||
<string name="bluetooth_visibility">Découvrable</string>
|
||||
<string name="bootloader_version">Version de chargeur d\'amorçage</string>
|
||||
<string name="brightness">Luminosité</string>
|
||||
<string name="build_date_label">Date de Build</string>
|
||||
<string name="build_description_label">Description de Build</string>
|
||||
<string name="build_host_label">Hôte de Build</string>
|
||||
<string name="build_id_label">ID Build</string>
|
||||
<string name="build_number">Numéro de Build</string>
|
||||
<string name="build_type_label">Type de Build</string>
|
||||
<string name="build_user_label">Utilisateur de Build</string>
|
||||
<string name="call_settings_summary">Configurer la messagerie vocale, le transfert d\'appel, le signal d\'appel, l\'identification de l\'appelant</string>
|
||||
<string name="call_settings_title">Paramètres d\'appel</string>
|
||||
<string name="cancel">Annuler</string>
|
||||
<string name="checkin_button_label">Rechercher les mises à niveau</string>
|
||||
<string name="checkin_download_failed">Échec</string>
|
||||
<string name="checkin_download_label">État de téléchargement</string>
|
||||
<string name="checkin_download_ongoing">Téléchargement en cours</string>
|
||||
<string name="checkin_download_pending">En attente</string>
|
||||
<string name="checkin_download_succeeded">Terminé</string>
|
||||
<string name="checkin_download_suspended">Suspendu</string>
|
||||
<string name="checkin_download_unknown">État inconnu</string>
|
||||
<string name="checkin_failures_label">Échecs depuis le dernier succès</string>
|
||||
<string name="checkin_last_time_label">Dernière vérification réussie</string>
|
||||
<string name="checkin_started_message">Vérification démarrée\u2026</string>
|
||||
<string name="checkin_status_label">État de vérification</string>
|
||||
<string name="checkin_time_never">(jamais)</string>
|
||||
<string name="checkin_upgrade_label">Mise à niveau en attente</string>
|
||||
<string name="choose_timezone">Sélectionner le fuseau horaire</string>
|
||||
<string name="choose_timezone_region">Sélectionner la région</string>
|
||||
<string name="clear_activities">Effacer les valeurs par défaut</string>
|
||||
<string name="clear_data_dlg_text">Toutes les informations enregistrées dans cette application seront supprimées de manière permanente.</string>
|
||||
<string name="clear_data_dlg_title">Supprimer</string>
|
||||
<string name="clear_data_failed">Impossible d\'effacer les données de l\'application.</string>
|
||||
<string name="clear_user_data_text">Effacer les données</string>
|
||||
<string name="computing_size">Calcul des tailles de l\'application\u2026</string>
|
||||
<string name="connect">Connecter</string>
|
||||
<string name="connect_to_blank">Connecter à <xliff:g id="network_name">%1$s</xliff:g></string>
|
||||
<string name="contributors_title">Contributeurs</string>
|
||||
<string name="copyright_title">Copyright</string>
|
||||
<string name="data_settings">Paramètres des données</string>
|
||||
<string name="data_settings_summary">Stockage du téléphone et carte SD, synchronisation des données</string>
|
||||
<string name="data_settings_title">Données</string>
|
||||
<string name="data_size_label">Données</string>
|
||||
<string name="date_and_time">Paramètres de date et heure</string>
|
||||
<string name="date_and_time_settings_summary">Définir la date, l\'heure, le fuseau horaire et les formats</string>
|
||||
<string name="date_and_time_settings_title">Date et heure</string>
|
||||
<string name="date_time_24hour">Utiliser le format 24 heures</string>
|
||||
<string name="date_time_auto">Automatique</string>
|
||||
<string name="date_time_auto_summaryOff">Utiliser les valeurs fournies par le réseau</string>
|
||||
<string name="date_time_auto_summaryOn">Utiliser les valeurs fournies par le réseau</string>
|
||||
<string name="date_time_changeDate_text">Modifier la date</string>
|
||||
<string name="date_time_changeTime_text">Modifier l\'heure</string>
|
||||
<string name="date_time_dateDisplay_text">3 nov. 1997</string>
|
||||
<string name="date_time_date_format">Sélectionner le format de la date</string>
|
||||
<string name="date_time_set_date">Définir la date</string>
|
||||
<string name="date_time_set_time">Définir l\'heure</string>
|
||||
<string name="date_time_set_timezone">Définir le fuseau horaire</string>
|
||||
<string name="date_time_setzone_text">Modifier le fuseau horaire</string>
|
||||
<string name="date_time_timeDisplay_text">11:45 AM</string>
|
||||
<string name="date_time_timezone_label">Fuseau horaire :</string>
|
||||
<string name="debug_intent_sender_label">Déboguer l\'expéditeur d\'intention</string>
|
||||
<string name="default_date_format">MM/jj/aaaa</string>
|
||||
<string name="default_keyboard_device_label">Clavier par défaut</string>
|
||||
<string name="development_settings_summary">Paramètres pour le développement d\'application</string>
|
||||
<string name="development_settings_title">Développement</string>
|
||||
<string name="device_info_asleeptime">Heures de veille</string>
|
||||
<string name="device_info_awaketime">Heures de réveil</string>
|
||||
<string name="device_info_default">Inconnu</string>
|
||||
<string name="device_info_label">Infos d\'appareil</string>
|
||||
<string name="device_info_not_available">indisponible</string>
|
||||
<string name="device_info_settings">État du téléphone</string>
|
||||
<string name="device_info_uptime">Temps productif</string>
|
||||
<string name="device_status">État</string>
|
||||
<string name="device_status_summary">IMEI, numéro de téléphone, signal, etc.</string>
|
||||
<string name="dim_screen">Assombrir l\'écran</string>
|
||||
<string name="disconnect_ums">Déconnecter le stockage de masse USB</string>
|
||||
<string name="display_font_size_label">Taille de police :</string>
|
||||
<string name="display_label">Affichage</string>
|
||||
<string name="display_preview_label">Aperçu :</string>
|
||||
<string name="display_settings">Paramètres d\'affichage</string>
|
||||
<string name="dlg_cancel">Annuler</string>
|
||||
<string name="dlg_ok">OK</string>
|
||||
<string name="done">OK</string>
|
||||
<string name="dtmf_tone_enable_summary_off">Émettre les tonalités lors de l\'utilisation du pavé de numérotation</string>
|
||||
<string name="dtmf_tone_enable_summary_on">Émettre les tonalités lors de l\'utilisation du pavé de numérotation</string>
|
||||
<string name="dtmf_tone_enable_title">Tonalités de touches audibles</string>
|
||||
<string name="enable_adb">Débogage USB</string>
|
||||
<string name="enable_adb_summary">Mode de débogage lors la connexion USB</string>
|
||||
<string name="error_apn_empty">Le champ APN ne peut pas être vide.</string>
|
||||
<string name="error_connecting">Impossible de connecter au réseau.</string>
|
||||
<string name="error_mcc_not3">Le champ MCC doit avoir 3 chiffres.</string>
|
||||
<string name="error_mnc_not23">Le champ MNC avoir 2 ou 3 chiffres.</string>
|
||||
<string name="error_name_empty">Le champ Nom ne peut pas être vide.</string>
|
||||
<string name="error_saving">Impossible d\'enregistrer le réseau</string>
|
||||
<string name="error_scanning">Impossible de rechercher les réseaux</string>
|
||||
<string name="error_starting">Impossible de démarrer Wi-Fi</string>
|
||||
<string name="error_stopping">Impossible d\'arrêter Wi-Fi</string>
|
||||
<string name="error_title">Attention</string>
|
||||
<string name="failed_to_connect">Impossible de connecter à <xliff:g id="device_name">%1$s</xliff:g></string>
|
||||
<string name="failed_to_pair">Impossible de lier avec <xliff:g id="device_name">%1$s</xliff:g></string>
|
||||
<string name="favorites_label">Favoris</string>
|
||||
<string name="firmware_version">Version de microprogramme</string>
|
||||
<string name="font_size_preview_text">Servez à ce monsieur une bière et des kiwis.</string>
|
||||
<string name="font_size_save">OK</string>
|
||||
<string name="forget_network">Oublier</string>
|
||||
<string name="fragment_status_authenticating">Authentification avec <xliff:g id="network_name">%1$s</xliff:g>\u2026</string>
|
||||
<string name="fragment_status_connected">Connecté à <xliff:g id="network_name">%1$s</xliff:g></string>
|
||||
<string name="fragment_status_connecting">Connexion à <xliff:g id="network_name">%1$s</xliff:g>\u2026</string>
|
||||
<string name="fragment_status_disconnected">Déconnecté</string>
|
||||
<string name="fragment_status_disconnecting">Déconnexion de <xliff:g id="network_name">%1$s</xliff:g>\u2026</string>
|
||||
<string name="fragment_status_failed">Échec</string>
|
||||
<string name="fragment_status_obtaining_ip">Obtention de l\'adresse IP de <xliff:g id="network_name">%1$s</xliff:g>\u2026</string>
|
||||
<string name="fragment_status_scanning">Recherche\u2026</string>
|
||||
<string name="gsm_version_baseband_label">Version bande de base</string>
|
||||
<string name="gsm_version_ril_impl_label">Version Impl RIL</string>
|
||||
<string name="install_all_warning">Votre téléphone et données personnelles sont plus vulnérable aux attaques
|
||||
des applications de sources inconnues. Vous acceptez être entièrement
|
||||
responsable de tout dommage à votre téléphone ou perte de données
|
||||
qui peuvent résulter de l\'utilisation de ces applications.</string>
|
||||
<string name="install_applications">Sources inconnues</string>
|
||||
<string name="install_unknown_applications">Permettre l\'installation d\'applications non-Market</string>
|
||||
<string name="intent_sender_account_label">Compte : </string>
|
||||
<string name="intent_sender_action_label">Action :</string>
|
||||
<string name="intent_sender_data_label">Données :</string>
|
||||
<string name="intent_sender_resource_label">Ressource : </string>
|
||||
<string name="intent_sender_sendbroadcast_text">Envoyer la diffusion</string>
|
||||
<string name="intent_sender_startactivity_text">Démarrer l\'activité</string>
|
||||
<string name="internal_memory">Stockage interne du téléphone</string>
|
||||
<string name="ip_address">Adresse IP</string>
|
||||
<string name="kb_text">Ko</string>
|
||||
<string name="keep_screen_on">Rester réveillé</string>
|
||||
<string name="keep_screen_on_summary">L\'écran n\'entrera jamais en veille pendant la charge</string>
|
||||
<string name="kernel_version">Version de kernel</string>
|
||||
<string name="kernel_version_label">Version de kernel Linux</string>
|
||||
<string name="keyguard_label">Garde-touches</string>
|
||||
<string name="keyguard_password_button_text">OK</string>
|
||||
<string name="keyguard_password_confirm_new_label">Confirmer nouveau mot de passe :</string>
|
||||
<string name="keyguard_password_mismatch_error_text">Les deux mots de passe ne correspondent pas. Veuillez les saisir à nouveau.</string>
|
||||
<string name="keyguard_password_new_label">Nouveau mot de passe :</string>
|
||||
<string name="keyguard_password_old_label">Ancien mot de passe :</string>
|
||||
<string name="keyguard_password_old_password_error_text">L\'ancien code mot de passe saisi est incorrect. Veuillez réessayer.</string>
|
||||
<string name="keyguard_pin_mod_text">Modifier le code PIN</string>
|
||||
<string name="keyguard_pw_mod_text">Sélectionner le motif de verrouillage</string>
|
||||
<string name="keyguard_sim_pin_label">PIN SIM</string>
|
||||
<string name="language_category">Paramètre de langue</string>
|
||||
<string name="language_picker_title">Paramètres régionaux</string>
|
||||
<string name="language_settings">Texte</string>
|
||||
<string name="language_settings_summary">Sélectionner les options d\'autocorrection du texte</string>
|
||||
<string name="large_font">Grande</string>
|
||||
<string name="legal_information">Informations légales</string>
|
||||
<string name="legal_information_summary">Afficher les termes et conditions</string>
|
||||
<string name="license_title">Licence</string>
|
||||
<string name="location_gps">Activer les satellites GPS</string>
|
||||
<string name="location_gps_disabled">Localiser à la rue prêt (nécessite plus de batterie et une vue du ciel)</string>
|
||||
<string name="location_label">Fournisseur de localisation :</string>
|
||||
<string name="location_neighborhood_level">Localisation déterminée par réseaux Wi-Fi et/ou mobiles</string>
|
||||
<string name="location_network_based">Utiliser les réseaux sans fil</string>
|
||||
<string name="location_networks_disabled">Voir la localisation dans les applications (telles que Maps) en utilisant les réseaux sans fil</string>
|
||||
<string name="location_source">Ma localisation</string>
|
||||
<string name="location_source_summary">Sélectionner les sources pour déterminer la localisation</string>
|
||||
<string name="location_status">État :</string>
|
||||
<string name="location_street_level">En localisation, précise à la rue prêt (désélectionner pour économiser la batterie)</string>
|
||||
<string name="location_title">Sources de Ma localisation</string>
|
||||
<string name="lock_example_message">Connectez au moins quatre points.\n
|
||||
\nSélectionnez \"Suivant\" lorsque vous êtes prêt à dessiner votre propre motif.
|
||||
</string>
|
||||
<string name="lock_example_title">Exemple de motif</string>
|
||||
<string name="lock_settings_title">Motif de déverrouillage de l\'écran</string>
|
||||
<string name="lock_title">Sécurisation de votre téléphone</string>
|
||||
<string name="lockpattern_change_lock_pattern_label">Modifier le motif de déverrouillage</string>
|
||||
<string name="lockpattern_confirm_button_text">Confirmer</string>
|
||||
<string name="lockpattern_continue_button_text">Continuer</string>
|
||||
<string name="lockpattern_need_to_confirm">Dessiner le motif à nouveau pour confirmer :</string>
|
||||
<string name="lockpattern_need_to_unlock">Confirmer le motif enregistré :</string>
|
||||
<string name="lockpattern_need_to_unlock_wrong">Désolé, réessayez :</string>
|
||||
<string name="lockpattern_pattern_confirmed_header">Votre nouveau motif de déverrouillage :</string>
|
||||
<string name="lockpattern_pattern_entered_header">Motif enregistré !</string>
|
||||
<string name="lockpattern_recording_incorrect_too_short">Connectez au moins <xliff:g id="number">%d</xliff:g> points. Réessayez :</string>
|
||||
<string name="lockpattern_recording_inprogress">Relâchez le doigt quand terminé.</string>
|
||||
<string name="lockpattern_recording_intro_footer">Appuyez Menu pour de l\'aide.</string>
|
||||
<string name="lockpattern_recording_intro_header">Dessinez un motif de déverrouillage :</string>
|
||||
<string name="lockpattern_restart_button_text">Redessiner</string>
|
||||
<string name="lockpattern_retry_button_text">Réessayer</string>
|
||||
<string name="lockpattern_settings_change_lock_pattern">Modifier le motif de déverrouillage</string>
|
||||
<string name="lockpattern_settings_choose_lock_pattern">Définir le motif de verrouillage</string>
|
||||
<string name="lockpattern_settings_enable_summary">Dessin obligatoire du motif pour déverrouiller l\'écran</string>
|
||||
<string name="lockpattern_settings_enable_title">Motif requis</string>
|
||||
<string name="lockpattern_settings_enable_visible_pattern_title">Utiliser un motif visible</string>
|
||||
<string name="lockpattern_settings_help_how_to_record">Comment dessiner un motif de déverrouillage :</string>
|
||||
<string name="lockpattern_settings_title">Motif de déverrouillage</string>
|
||||
<string name="lockpattern_too_many_failed_confirmation_attempts_footer">Réessayez dans <xliff:g id="number">%d</xliff:g> secondes.</string>
|
||||
<string name="lockpattern_too_many_failed_confirmation_attempts_header">Trop de tentatives incorrectes.</string>
|
||||
<string name="manage_applications_title">Gérer les applications</string>
|
||||
<string name="manage_space_text">Gérer l\'espace</string>
|
||||
<string name="manageapplications_settings_title">Gérer les applications</string>
|
||||
<string name="mass_storage">Utiliser pour le stockage USB</string>
|
||||
<string name="master_clear_button_text">Réinitialiser le téléphone</string>
|
||||
<string name="master_clear_desc">Cette action réinitialisera le téléphone à son état initial de l\'usine, effaçant toutes les données et applications téléchargées !</string>
|
||||
<string name="master_clear_failed">Aucune réinitialisation effectuée car le service Système effacé n\'est pas disponible.</string>
|
||||
<string name="master_clear_final_button_text">Effacer tout</string>
|
||||
<string name="master_clear_final_desc">Réinitialiser le téléphone, effaçant toutes vos données et applications ? L\'action ne peut pas être inversée !</string>
|
||||
<string name="master_clear_gesture_explanation">Vous devez dessiner votre motif de déverrouillage pour confirmer la réinitialisation du téléphone.</string>
|
||||
<string name="master_clear_gesture_prompt">Veuillez dessiner votre motif de déverrouillage :</string>
|
||||
<string name="master_clear_summary">Efface toutes les données sur le téléphone</string>
|
||||
<string name="master_clear_title">Réinitialisation aux données d\'usine</string>
|
||||
<string name="mb_text">Mo</string>
|
||||
<string name="media_volume_summary">Définir le volume pour la musique et les vidéos</string>
|
||||
<string name="media_volume_title">Volume média</string>
|
||||
<string name="medium_font">Moyen</string>
|
||||
<string name="memory_available">Espace disponible</string>
|
||||
<string name="memory_size">Espace total</string>
|
||||
<string name="menu_cancel">Abandonner</string>
|
||||
<string name="menu_delete">Supprimer APN</string>
|
||||
<string name="menu_new">Nouvel APN</string>
|
||||
<string name="menu_save">Enregistrer</string>
|
||||
<string name="model_number">Numéro de modèle</string>
|
||||
<string name="network_settings_summary">Définir les options pour l\'itinérance, les réseaux, les APN</string>
|
||||
<string name="network_settings_title">Réseaux mobiles</string>
|
||||
<string name="networks">Sélection de l\'opérateur</string>
|
||||
<string name="networks_title">Paramètres réseau</string>
|
||||
<string name="next_button_label">Suivant</string>
|
||||
<string name="next_label">Suivant</string>
|
||||
<string name="notification_sound_dialog_title">Sélectionner la sonnerie de notification</string>
|
||||
<string name="notification_sound_summary">Définir votre sonnerie de notification par défaut</string>
|
||||
<string name="notification_sound_title">Sonnerie de notification</string>
|
||||
<string name="permissions_label">Permissions</string>
|
||||
<string name="phone_info_label">Infos téléphone</string>
|
||||
<string name="phone_language">Sélectionner la langue</string>
|
||||
<string name="ping_test_label">Exécuter test ping</string>
|
||||
<string name="please_type_hex_key">Clé hex WEP (0-9, A-F)</string>
|
||||
<string name="please_type_passphrase">Mot de passe sans fil</string>
|
||||
<string name="product_brand_label">Marque de produit</string>
|
||||
<string name="product_device_label">Type de téléphone</string>
|
||||
<string name="progress_scanning">Recherche</string>
|
||||
<string name="proxy_action_text">Enregistrer</string>
|
||||
<string name="proxy_clear_text">Effacer</string>
|
||||
<string name="proxy_defaultView_text">Restaurer les valeurs par défaut</string>
|
||||
<string name="proxy_error">Attention</string>
|
||||
<string name="proxy_error_dismiss">OK</string>
|
||||
<string name="proxy_error_empty_host_set_port">Le champ de port doit être vide si le champ d\'hôte est vide.</string>
|
||||
<string name="proxy_error_empty_port">Vous devez compléter le champ de port.</string>
|
||||
<string name="proxy_error_invalid_host">Le nom d\'hôte saisi n\'est pas valide.</string>
|
||||
<string name="proxy_error_invalid_port">Le port saisi n\'est pas valide.</string>
|
||||
<string name="proxy_hostname_label">Nom d\'hôte</string>
|
||||
<string name="proxy_port_label">Port</string>
|
||||
<string name="proxy_settings_label">Paramètres de proxy</string>
|
||||
<string name="quick_launch_assign_application">Affecter application</string>
|
||||
<string name="quick_launch_clear_cancel_button">Annuler</string>
|
||||
<string name="quick_launch_clear_dialog_message">Votre raccourci pour <xliff:g id="shortcut_letter">%1$s</xliff:g> (<xliff:g id="application_name">%2$s</xliff:g>) sera effacé.</string>
|
||||
<string name="quick_launch_clear_dialog_title">Effacer</string>
|
||||
<string name="quick_launch_clear_ok_button">OK</string>
|
||||
<string name="quick_launch_display_mode_applications">Applications</string>
|
||||
<string name="quick_launch_display_mode_shortcuts">Raccourcis</string>
|
||||
<string name="quick_launch_no_shortcut">Pas de raccourci</string>
|
||||
<string name="quick_launch_shortcut">Recherche + <xliff:g id="shortcut_letter">%1$s</xliff:g></string>
|
||||
<string name="quick_launch_summary">Définir le clavier les raccourcis pour lancer les applications</string>
|
||||
<string name="quick_launch_title">Lancement rapide</string>
|
||||
<string name="radioInfo_cid">CID</string>
|
||||
<string name="radioInfo_data_connected">Connecté</string>
|
||||
<string name="radioInfo_data_connecting">Connexion</string>
|
||||
<string name="radioInfo_data_disconnected">Déconnecté</string>
|
||||
<string name="radioInfo_data_suspended">Suspendu</string>
|
||||
<string name="radioInfo_display_asu">asu</string>
|
||||
<string name="radioInfo_display_bytes">octets</string>
|
||||
<string name="radioInfo_display_dbm">dBm</string>
|
||||
<string name="radioInfo_display_packets">pqts</string>
|
||||
<string name="radioInfo_lac">LAC</string>
|
||||
<string name="radioInfo_menu_disableData">Désactiver la connexion de données</string>
|
||||
<string name="radioInfo_menu_disableDataOnBoot">Désactiver les données à l\'amorçage</string>
|
||||
<string name="radioInfo_menu_enableData">Activer la connexion de données</string>
|
||||
<string name="radioInfo_menu_enableDataOnBoot">Activer les données à l\'amorçage</string>
|
||||
<string name="radioInfo_menu_getPDP">Obtenir la liste PDP</string>
|
||||
<string name="radioInfo_menu_viewADN">Afficher le carnet d\'adresses en SIM</string>
|
||||
<string name="radioInfo_menu_viewFDN">Afficher la numérotation fixe</string>
|
||||
<string name="radioInfo_menu_viewSDN">Afficher la numérotation de service</string>
|
||||
<string name="radioInfo_phone_idle">Inactif</string>
|
||||
<string name="radioInfo_phone_offhook">Appel en cours</string>
|
||||
<string name="radioInfo_phone_ringing">Ça sonne</string>
|
||||
<string name="radioInfo_roaming_in">Itinérance</string>
|
||||
<string name="radioInfo_roaming_not">Pas d\'itinérance</string>
|
||||
<string name="radioInfo_service_emergency">Appel d\'urgence uniquement</string>
|
||||
<string name="radioInfo_service_in">En service</string>
|
||||
<string name="radioInfo_service_off">Radio désactivée</string>
|
||||
<string name="radioInfo_service_out">Hors service</string>
|
||||
<string name="radioInfo_unknown">inconnu</string>
|
||||
<string name="radio_controls_summary">Gérer Wi-Fi, Bluetooth, mode avion et réseaux mobiles</string>
|
||||
<string name="radio_controls_title">Contrôles sans fil</string>
|
||||
<string name="radio_info_band_mode_label">Sélectionner la bande radio</string>
|
||||
<string name="radio_info_call_redirect_label">Redirection d\'appel :</string>
|
||||
<string name="radio_info_call_status_label">État d\'appel :</string>
|
||||
<string name="radio_info_current_network_label">Réseau actuel :</string>
|
||||
<string name="radio_info_data_attempts_label">Essais de données :</string>
|
||||
<string name="radio_info_data_successes_label">Succès de données :</string>
|
||||
<string name="radio_info_gprs_service_label">Service GPRS :</string>
|
||||
<string name="radio_info_gsm_disconnects_label">Déconnexions GSM :</string>
|
||||
<string name="radio_info_gsm_service_label">Service GSM :</string>
|
||||
<string name="radio_info_http_client_test">Test client HTTP :</string>
|
||||
<string name="radio_info_imei_label">IMEI :</string>
|
||||
<string name="radio_info_imsi_label">IMSI :</string>
|
||||
<string name="radio_info_message_waiting_label">Message en attente :</string>
|
||||
<string name="radio_info_neighboring_location_label">CID voisin :</string>
|
||||
<string name="radio_info_network_type_label">Type de réseau :</string>
|
||||
<string name="radio_info_phone_number_label">Numéro de téléphone :</string>
|
||||
<string name="radio_info_ping_hostname">Ping nom d\'hôte (www.google.com) :</string>
|
||||
<string name="radio_info_ping_ipaddr">Ping AdrIP :</string>
|
||||
<string name="radio_info_ppp_received_label">PPP reçus :</string>
|
||||
<string name="radio_info_ppp_resets_label">Nombre de réinitialisation PPP depuis l\'amorçage :</string>
|
||||
<string name="radio_info_ppp_sent_label">PPP envoyés :</string>
|
||||
<string name="radio_info_radio_resets_label">Réinitialisations radio :</string>
|
||||
<string name="radio_info_roaming_label">Itinérance :</string>
|
||||
<string name="radio_info_set_perferred_label">Définir le type de réseau préféré :</string>
|
||||
<string name="radio_info_signal_location_label">Localisation :</string>
|
||||
<string name="radio_info_signal_strength_label">Force du signal :</string>
|
||||
<string name="radio_info_smsc_label">SMSC :</string>
|
||||
<string name="radio_info_smsc_refresh_label">Actualiser</string>
|
||||
<string name="radio_info_smsc_update_label">Mise à jour</string>
|
||||
<string name="radio_info_toggle_ciph_label">Activer/désactiver le chiffrage</string>
|
||||
<string name="read_only">\u0020(Lecture seule)</string>
|
||||
<string name="recompute_size">Recalcul de la taille\u2026</string>
|
||||
<string name="ring_volume_summary">Définir le volume pour les appels entrants</string>
|
||||
<string name="ring_volume_title">Volume de la sonnerie</string>
|
||||
<string name="ringer_volume_instructions">Utiliser les boutons du volume pour ajuster le volume de la sonnerie</string>
|
||||
<string name="ringer_volume_ringer_mode_label">Mode de sonnerie</string>
|
||||
<string name="ringer_volume_ringtone_label">Sonnerie</string>
|
||||
<string name="ringer_volume_screen_increasing_text">Sonnerie croissante</string>
|
||||
<string name="ringtone_summary">Définir votre sonnerie d\'appels entrants par défaut</string>
|
||||
<string name="ringtone_title">Sonnerie du téléphone</string>
|
||||
<string name="roaming">Itinérance de données</string>
|
||||
<string name="roaming_disable">Connecter aux services de donnée en itinérance</string>
|
||||
<string name="roaming_enable">Connecter aux services de donnée en itinérance</string>
|
||||
<string name="roaming_reenable_message">Vous avez perdu la connectivité de données car vous avez quitté votre réseau personnel avec l\'itinérance de données désactivée.</string>
|
||||
<string name="roaming_reenable_title">Attention</string>
|
||||
<string name="roaming_turn_it_on_button">Activez-la</string>
|
||||
<string name="roaming_warning">Permettre l\'itinérance de données ? Vous pouvez avoir des frais d\'itinérance importants !</string>
|
||||
<string name="scan_wifi">Rechercher</string>
|
||||
<string name="screen_off_timeout_label">Ne jamais expirer pendant la charge</string>
|
||||
<string name="screen_timeout">Expiration de l\'écran</string>
|
||||
<string name="sd_card_settings_label">Carte SD</string>
|
||||
<string name="sd_eject">Démonter/éjecter la carte SD</string>
|
||||
<string name="sd_memory">Carte SD</string>
|
||||
<string name="sd_unavailable">Non disponible</string>
|
||||
<string name="sdcard_changes_instructions">Les modifications prennent effet à la reconnexion du câble USB</string>
|
||||
<string name="sdcard_removal_alert_ok">OK</string>
|
||||
<string name="sdcard_removal_alert_scolding">La carte SD a été retirée alors qu\'elle était en utilisation !
|
||||
Pour éviter la corruption de la carte, utilisez l\'écran Paramètres de carte SD pour démonter la carte avant le retrait.</string>
|
||||
<string name="sdcard_removal_alert_title">Retrait de carte SD non sûr !</string>
|
||||
<string name="sdcard_setting">Carte SD</string>
|
||||
<string name="sdcard_settings_available_bytes_label">Octets disponibles :</string>
|
||||
<string name="sdcard_settings_bad_removal_status">La carte SD a été retirée alors qu\'elle était en utilisation !</string>
|
||||
<string name="sdcard_settings_mass_storage_status">La carte SD est utilisée comme appareil de stockage de masse</string>
|
||||
<string name="sdcard_settings_not_present_status">Pas de carte SD</string>
|
||||
<string name="sdcard_settings_read_only_status">Carte SD montée en lecture seule</string>
|
||||
<string name="sdcard_settings_scanning_status">Recherche de fichiers multimédia dans la carte SD\u2026</string>
|
||||
<string name="sdcard_settings_screen_mass_storage_text">Activer le stockage de masse USB</string>
|
||||
<string name="sdcard_settings_total_bytes_label">Total d\'octets :</string>
|
||||
<string name="sdcard_settings_unmounted_status">Il est maintenant possible de retirer la carte SD en toute sécurité</string>
|
||||
<string name="sdcard_settings_used_bytes_label">Octets utilisés :</string>
|
||||
<string name="sdcard_unmount">Démonter la carte SD</string>
|
||||
<string name="sdcard_unmountable_alert_ok">OK</string>
|
||||
<string name="sdcard_unmountable_alert_title">Carte SD illisible</string>
|
||||
<string name="sdcard_unmountable_message">La carte SD n\'a pas pu être lue.
|
||||
Le système de fichiers peut être corrompu ou la carte peut être défective.</string>
|
||||
<string name="security">Sécurité</string>
|
||||
<string name="security_and_data_label">Sécurité et données</string>
|
||||
<string name="security_passwords_title">Mots de passe</string>
|
||||
<string name="security_settings_desc">Voici ce que cette application peut accéder sur votre téléphone :</string>
|
||||
<string name="security_settings_summary">Ma localisation, déverrouillage d\'écran, verrouillage de carte SIM</string>
|
||||
<string name="security_settings_title">Sécurité et localisation</string>
|
||||
<string name="select_your_language">Sélectionner votre langue</string>
|
||||
<string name="set_lock_pattern_label">Dessinez votre motif de déverrouillage :</string>
|
||||
<string name="settings_chooser_pick_string">
|
||||
L\'icône des paramètres doit transférer à :
|
||||
</string>
|
||||
<string name="settings_label">Paramètres</string>
|
||||
<string name="settings_license_activity_loading">Chargement\u2026</string>
|
||||
<string name="settings_license_activity_title">Licences Open source</string>
|
||||
<string name="settings_license_activity_unavailable">Il y a un problème pour charger les licences.</string>
|
||||
<string name="show_password">Mots de passe visibles</string>
|
||||
<string name="show_password_summary">Afficher le mot de passe lors de la saisie</string>
|
||||
<string name="signal">Force du signal</string>
|
||||
<string name="silent_mode_summary">Tous les sons excepté le multimédia sont sous silence</string>
|
||||
<string name="silent_mode_title">Mode silencieux</string>
|
||||
<string name="sim_bad_pin">Code PIN incorrect !</string>
|
||||
<string name="sim_change_failed">Impossible de modifier le code PIN.\nPossible code PIN incorrect.</string>
|
||||
<string name="sim_change_pin">Modifier PIN SIM</string>
|
||||
<string name="sim_change_succeeded">PIN SIM modifié avec succès</string>
|
||||
<string name="sim_disable_sim_lock">Déverrouiller la carte SIM</string>
|
||||
<string name="sim_enable_sim_lock">Verrouiller la carte SIM</string>
|
||||
<string name="sim_enter_cancel">Annuler</string>
|
||||
<string name="sim_enter_new">Saisir le nouveau code PIN</string>
|
||||
<string name="sim_enter_ok">OK</string>
|
||||
<string name="sim_enter_old">Saisir l\'ancien code PIN</string>
|
||||
<string name="sim_enter_pin">Saisir le code PIN SIM</string>
|
||||
<string name="sim_lock_failed">Impossible de modifier l\'état de verrouillage de la carte SIM.\nPossible code PIN incorrect.</string>
|
||||
<string name="sim_lock_off">Exiger le code PIN pour utiliser le téléphone</string>
|
||||
<string name="sim_lock_on">Exiger le code PIN pour utiliser le téléphone</string>
|
||||
<string name="sim_lock_settings">Paramètres de verrouillage de carte SIM</string>
|
||||
<string name="sim_lock_settings_category">Configurer le verrouillage de carte SIM</string>
|
||||
<string name="sim_lock_settings_title">Verrouillage de carte SIM</string>
|
||||
<string name="sim_pin_change">Modifier le code PIN</string>
|
||||
<string name="sim_pin_toggle">Verrouiller la carte SIM</string>
|
||||
<string name="sim_pins_dont_match">Les codes PIN ne correspondent pas !</string>
|
||||
<string name="sim_reenter_new">Ressaisir le nouveau code PIN</string>
|
||||
<string name="skip_button_label">Annuler</string>
|
||||
<string name="small_font">Petit</string>
|
||||
<string name="software_version">Version du logiciel</string>
|
||||
<string name="sort_order_alpha">Trier alphabétiquement</string>
|
||||
<string name="sort_order_size">Trier par taille (décroissante)</string>
|
||||
<string name="sound_and_display_settings">Son et affichage</string>
|
||||
<string name="sound_and_display_settings_summary">Définir les sonneries, les notifications, la luminosité d\'écran</string>
|
||||
<string name="sound_effects_enable_summary_off">Émettre un son lors de la sélection à l\'écran</string>
|
||||
<string name="sound_effects_enable_summary_on">Émettre un son lors de la sélection à l\'écran</string>
|
||||
<string name="sound_effects_enable_title">Sélection sonore</string>
|
||||
<string name="sound_settings">Paramètres de son</string>
|
||||
<string name="status_authenticating">Authentification\u2026</string>
|
||||
<string name="status_awake_time">Heures de réveil</string>
|
||||
<string name="status_bt_address">Adresse Bluetooth</string>
|
||||
<string name="status_connected">Connecté</string>
|
||||
<string name="status_connecting">Connexion\u2026</string>
|
||||
<string name="status_data_state">Accès aux données</string>
|
||||
<string name="status_disconnected">Déconnecté</string>
|
||||
<string name="status_disconnecting">Déconnexion\u2026</string>
|
||||
<string name="status_failed">Échec</string>
|
||||
<string name="status_imei">IMEI</string>
|
||||
<string name="status_imei_sv">IMEI SV</string>
|
||||
<string name="status_imsi">IMSI</string>
|
||||
<string name="status_network_type">Type de réseau</string>
|
||||
<string name="status_number">Numéro de téléphone</string>
|
||||
<string name="status_obtaining_ip">Obtenir l\'adresse\u2026</string>
|
||||
<string name="status_operator">Réseau</string>
|
||||
<string name="status_roaming">Itinérance</string>
|
||||
<string name="status_scanning">Recherche\u2026</string>
|
||||
<string name="status_service_state">État de service</string>
|
||||
<string name="status_signal_strength">Force du signal</string>
|
||||
<string name="status_unavailable">Non disponible</string>
|
||||
<string name="status_up_time">Temps productif</string>
|
||||
<string name="status_wifi_mac_address">Adresse MAC Wi-Fi</string>
|
||||
<string name="stay_on">L\'écran est toujours allumé pendant la charge</string>
|
||||
<string name="storage_label">Stockage</string>
|
||||
<string name="storage_settings_summary">Démonter la carte SD, afficher le stockage disponible</string>
|
||||
<string name="storage_settings_title">Stockage du téléphone et carte SD</string>
|
||||
<string name="sum_carrier_select">Sélectionnez un opérateur de réseau</string>
|
||||
<string name="summary_connection_failed">Échec de la connexion, sélectionnez pour ressayer</string>
|
||||
<string name="summary_not_in_range">Pas à distance</string>
|
||||
<string name="summary_remembered">Souvenu</string>
|
||||
<string name="sync_automatically">Auto-synchroniser</string>
|
||||
<string name="sync_calendar">Agenda</string>
|
||||
<string name="sync_contacts">Contacts</string>
|
||||
<string name="sync_disabled">Sélectionner pour synchroniser automatiquement les données</string>
|
||||
<string name="sync_do_nothing">Ne rien faire maintenant.</string>
|
||||
<string name="sync_enabled">Synchroniser automatiquement les données</string>
|
||||
<string name="sync_gmail">Gmail</string>
|
||||
<string name="sync_is_failing">Il y a actuellement des problèmes de synchronisation. Elle sera de retour rapidement.</string>
|
||||
<string name="sync_menu_sync_cancel">Annuler la synchronisation</string>
|
||||
<string name="sync_menu_sync_now">Synchroniser maintenant</string>
|
||||
<string name="sync_really_delete">Supprimez les éléments.</string>
|
||||
<string name="sync_settings">Synchronisation données</string>
|
||||
<string name="sync_settings_summary">Sélectionnez les applications à synchroniser</string>
|
||||
<string name="sync_too_many_deletes">Limite de suppression dépassée</string>
|
||||
<string name="sync_too_many_deletes_desc">Il y a %d éléments supprimés pour %s, compte %s. Que souhaitez-vous faire ?</string>
|
||||
<string name="sync_undo_deletes">Annulez les suppressions.</string>
|
||||
<string name="target_build_field_label">Type de Build demandé</string>
|
||||
<string name="team_title">Équipe</string>
|
||||
<string name="telephony_apn_label">APN :</string>
|
||||
<string name="telephony_mcc_label">MCC :</string>
|
||||
<string name="telephony_mmsc_label">MMSC :</string>
|
||||
<string name="telephony_mmsport_label">Port MMS :</string>
|
||||
<string name="telephony_mmsproxy_label">Proxy MMS :</string>
|
||||
<string name="telephony_mnc_label">MNC :</string>
|
||||
<string name="telephony_name_label">Nom :</string>
|
||||
<string name="telephony_password_label">Mot de passe :</string>
|
||||
<string name="telephony_port_label">Port :</string>
|
||||
<string name="telephony_proxy_label">Proxy :</string>
|
||||
<string name="telephony_server_label">Serveur :</string>
|
||||
<string name="telephony_user_label">Utilisateur :</string>
|
||||
<string name="terms_title">Termes et conditions</string>
|
||||
<string name="testing">Test</string>
|
||||
<string name="testing_battery_info">Informations batterie</string>
|
||||
<string name="testing_phone_info">Informations téléphone</string>
|
||||
<string name="testing_sim_toolkit">Outils SIM</string>
|
||||
<string name="text_category">Paramètres texte</string>
|
||||
<string name="total_size_label">Total</string>
|
||||
<string name="turn_off_qxdm">Désactiver journal QXDM SD</string>
|
||||
<string name="turn_off_radio">Désactiver la radio</string>
|
||||
<string name="turn_on_qxdm">Activer journal QXDM SD</string>
|
||||
<string name="turn_on_radio">Activer la radio</string>
|
||||
<string name="underdeveloped_settings_label">Paramètres sous-développés</string>
|
||||
<string name="uninstall_failed">Impossible de désinstaller l\'application.</string>
|
||||
<string name="uninstall_text">Désinstaller</string>
|
||||
<string name="unknown">Inconnu</string>
|
||||
<string name="vibrate_summary">Faire vibrer le téléphone pour les appels entrants</string>
|
||||
<string name="vibrate_title">Vibreur téléphone</string>
|
||||
<string name="wallpaper_label">Papier peint</string>
|
||||
<string name="wifi">Wi-Fi</string>
|
||||
<string name="wifi_access_points">Réseaux Wi-Fi</string>
|
||||
<string name="wifi_add_other_network">Ajouter un réseau Wi-Fi</string>
|
||||
<string name="wifi_context_menu_change_password">Changer le mot de passe</string>
|
||||
<string name="wifi_context_menu_connect">Connexion au réseau</string>
|
||||
<string name="wifi_context_menu_forget">Oublier le réseau</string>
|
||||
<string name="wifi_dhcp_timeout_error">Il y a un problème pour obtenir une adresse IP.</string>
|
||||
<string name="wifi_dns1">DNS 1</string>
|
||||
<string name="wifi_dns2">DNS 2</string>
|
||||
<string name="wifi_dns3">DNS 3</string>
|
||||
<string name="wifi_dns_label">dns :</string>
|
||||
<string name="wifi_error">Erreur</string>
|
||||
<string name="wifi_gateway">Passerelle</string>
|
||||
<string name="wifi_gateway_label">passerelle :</string>
|
||||
<string name="wifi_generic_connection_error">Il y a un problème de connexion au réseau. Veuillez réessayer.</string>
|
||||
<string name="wifi_host_ip">ip hôte :</string>
|
||||
<string name="wifi_ip_address">Adresse IP</string>
|
||||
<string name="wifi_ip_settings_invalid_ip">Veuillez saisir une adresse IP valide.</string>
|
||||
<string name="wifi_ip_settings_menu_cancel">Annuler</string>
|
||||
<string name="wifi_ip_settings_menu_save">Enregistrer</string>
|
||||
<string name="wifi_ip_settings_titlebar">Paramètres IP</string>
|
||||
<string name="wifi_link_speed">Vitesse</string>
|
||||
<string name="wifi_menu_advanced">Avancés</string>
|
||||
<string name="wifi_netmask">Masque réseau</string>
|
||||
<string name="wifi_netmask_label">masque réseau :</string>
|
||||
<string name="wifi_notify_open_networks">Notification réseau</string>
|
||||
<string name="wifi_notify_open_networks_summary">Me notifier quand un réseau ouvert est disponible</string>
|
||||
<string name="wifi_password_incorrect_error">Le mot de passe du réseau saisi est incorrect. Veuillez réessayer.</string>
|
||||
<string name="wifi_password_unchanged">(inchangé)</string>
|
||||
<string name="wifi_prefer_wifi">Wi-Fi préféré</string>
|
||||
<string name="wifi_quick_toggle_summary">Sélectionner d\'activer Wi-Fi</string>
|
||||
<string name="wifi_quick_toggle_title">Wi-Fi</string>
|
||||
<string name="wifi_save_config">Enregistrer</string>
|
||||
<string name="wifi_screen_activate_text">Activer</string>
|
||||
<string name="wifi_screen_dhcp_text">automatique</string>
|
||||
<string name="wifi_screen_dns_text">209.81.59.2</string>
|
||||
<string name="wifi_screen_gateway_text">192.168.20.1</string>
|
||||
<string name="wifi_screen_ip_text">192.168.20.10</string>
|
||||
<string name="wifi_screen_manual_text">manuel</string>
|
||||
<string name="wifi_screen_netmask_text">255.255.255.0</string>
|
||||
<string name="wifi_screen_status_text">Wi-Fi fonctionne</string>
|
||||
<string name="wifi_screen_test_text">Test</string>
|
||||
<string name="wifi_security">Sécurité</string>
|
||||
<string name="wifi_security_open">Ouvrir</string>
|
||||
<string name="wifi_security_unknown">Inconnu</string>
|
||||
<string name="wifi_security_verbose_open">Réseau ouvert</string>
|
||||
<string name="wifi_security_verbose_wep">Sécurisé avec WEP</string>
|
||||
<string name="wifi_security_verbose_wpa">Sécurisé avec WPA</string>
|
||||
<string name="wifi_security_verbose_wpa2">Sécurisé avec WPA2</string>
|
||||
<string name="wifi_security_wep">WEP</string>
|
||||
<string name="wifi_security_wpa">WPA</string>
|
||||
<string name="wifi_security_wpa2">WPA2</string>
|
||||
<string name="wifi_settings">Paramètres Wi-Fi</string>
|
||||
<string name="wifi_settings_category">Paramètres Wi-Fi</string>
|
||||
<string name="wifi_settings_summary">Configurer et gérer les points d\'accès sans fil</string>
|
||||
<string name="wifi_show_password">Affichez le mot de passe.</string>
|
||||
<string name="wifi_signal_0">Faible</string>
|
||||
<string name="wifi_signal_1">Passable</string>
|
||||
<string name="wifi_signal_2">Bonne</string>
|
||||
<string name="wifi_signal_3">Excellente</string>
|
||||
<string name="wifi_starting">Activation\u2026</string>
|
||||
<string name="wifi_status">État</string>
|
||||
<string name="wifi_stopping">Désactivation\u2026</string>
|
||||
<string name="wifi_type_ssid">Saisissez le SSID du réseau :</string>
|
||||
<string name="wifi_use_static_ip">Utiliser IP statique</string>
|
||||
<string name="wifi_wlan_id">id réseau sans fil :</string>
|
||||
</resources>
|
@@ -1,700 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
|
||||
<string name="about_settings">Informazioni sul telefono</string>
|
||||
<string name="about_settings_summary">Visualizza le informazioni legali, lo stato del telefono e la versione del software</string>
|
||||
<string name="activity_picker_label">Seleziona attività</string>
|
||||
<string name="airplane_mode">Modalità aereo</string>
|
||||
<string name="airplane_mode_summary">Selezionare per disattivare tutte le connessioni wireless</string>
|
||||
<string name="airplane_mode_turning_off">Attivazione connessioni wireless\u2026</string>
|
||||
<string name="airplane_mode_turning_on">Disattivazione connessioni wireless\u2026</string>
|
||||
<string name="android_id_label">ID Android</string>
|
||||
<string name="apn_apn">APN</string>
|
||||
<string name="apn_edit">Modifica punto di accesso</string>
|
||||
<string name="apn_http_port">Porta</string>
|
||||
<string name="apn_http_proxy">Proxy</string>
|
||||
<string name="apn_label">APN</string>
|
||||
<string name="apn_mcc">MCC</string>
|
||||
<string name="apn_mms_port">Porta MMS</string>
|
||||
<string name="apn_mms_proxy">Proxy MMS</string>
|
||||
<string name="apn_mmsc">MMSC</string>
|
||||
<string name="apn_mnc">MNC</string>
|
||||
<string name="apn_name">Nome</string>
|
||||
<string name="apn_not_set"><Non impostato></string>
|
||||
<string name="apn_password">Password</string>
|
||||
<string name="apn_server">Server</string>
|
||||
<string name="apn_settings">APN</string>
|
||||
<string name="apn_type">Tipo APN</string>
|
||||
<string name="apn_user">Nome utente</string>
|
||||
<string name="app_launcher_newView_text">Nuovo AppLauncher</string>
|
||||
<string name="app_not_found_dlg_text"> Impossibile trovare l'applicazione
|
||||
nell'elenco di applicazioni installate.</string>
|
||||
<string name="app_not_found_dlg_title">Impossibile trovare l'applicazione</string>
|
||||
<string name="application_info_label">Informazioni sull'applicazione</string>
|
||||
<string name="application_size_label">Applicazione</string>
|
||||
<string name="applications_settings">Applicazioni</string>
|
||||
<string name="applications_settings_header">Impostazioni applicazione</string>
|
||||
<string name="applications_settings_summary">Gestisce le applicazioni, imposta i collegamenti di avvio rapido</string>
|
||||
<string name="auto_caps">Maiuscola automatica</string>
|
||||
<string name="auto_caps_summary">Attiva la maiuscola per la prima lettera nelle frasi</string>
|
||||
<string name="auto_launch_disable_text">Nessuna impostazione predefinita.</string>
|
||||
<string name="auto_launch_enable_text">Si è scelto di avviare questa applicazione per impostazione predefinita per alcune azioni.</string>
|
||||
<string name="auto_launch_label">Avvia per impostazione predefinita</string>
|
||||
<string name="auto_punctuate">Punteggiatura automatica</string>
|
||||
<string name="auto_punctuate_summary">Premere Barra spaziatrice per inserire \u0022.\u0022</string>
|
||||
<string name="auto_replace">Sostituzione automatica</string>
|
||||
<string name="auto_replace_summary">Corregge le parole con errori di ortografia</string>
|
||||
<string name="autorotate">Rotazione automatica</string>
|
||||
<string name="autorotate_summary_off">Cambiando l'orientamento dello schermo non viene ruotata l'applicazione</string>
|
||||
<string name="autorotate_summary_on">Cambiando l'orientamento dello schermo viene ruotata l'applicazione</string>
|
||||
<string name="b_text">B</string>
|
||||
<string name="band_mode_failed">Non riuscito</string>
|
||||
<string name="band_mode_loading">Caricamento lista bande in corso\u2026</string>
|
||||
<string name="band_mode_set">Imposta</string>
|
||||
<string name="band_mode_succeeded">Riuscita</string>
|
||||
<string name="band_mode_title">Imposta banda GSM/UMTS</string>
|
||||
<string name="baseband_version">Versione banda di base</string>
|
||||
<string name="basic_settings_title">Funzioni di base del telefono</string>
|
||||
<string name="battery_info_awake_battery">Tempo riattivazione batteria:</string>
|
||||
<string name="battery_info_awake_plugged">Tempo riattivazione durante la carica:</string>
|
||||
<string name="battery_info_health_dead">Fuori uso</string>
|
||||
<string name="battery_info_health_good">Buona</string>
|
||||
<string name="battery_info_health_label">Stato batteria:</string>
|
||||
<string name="battery_info_health_over_voltage">Sovratensione</string>
|
||||
<string name="battery_info_health_overheat">Surriscaldamento</string>
|
||||
<string name="battery_info_health_unknown">Sconosciuto</string>
|
||||
<string name="battery_info_health_unspecified_failure">Errore sconosciuto</string>
|
||||
<string name="battery_info_label">Informazioni batteria</string>
|
||||
<string name="battery_info_level_label">Livello batteria:</string>
|
||||
<string name="battery_info_scale_label">Scala batteria:</string>
|
||||
<string name="battery_info_screen_on">Tempo accensione schermo:</string>
|
||||
<string name="battery_info_status_charging">Sotto carica</string>
|
||||
<string name="battery_info_status_charging_ac">(CA)</string>
|
||||
<string name="battery_info_status_charging_usb">(USB)</string>
|
||||
<string name="battery_info_status_discharging">Scarico</string>
|
||||
<string name="battery_info_status_full">Carico</string>
|
||||
<string name="battery_info_status_label">Stato batteria:</string>
|
||||
<string name="battery_info_status_not_charging">Non sotto carica</string>
|
||||
<string name="battery_info_status_unknown">Sconosciuto</string>
|
||||
<string name="battery_info_technology_label">Tecnologia batteria:</string>
|
||||
<string name="battery_info_temperature_label">Temperatura batteria:</string>
|
||||
<string name="battery_info_temperature_units">\u00B0 C</string>
|
||||
<string name="battery_info_uptime">Tempo dall'avvio:</string>
|
||||
<string name="battery_info_voltage_label">Voltaggio batteria:</string>
|
||||
<string name="battery_info_voltage_units">mV</string>
|
||||
<string name="battery_level_title">Livello batteria</string>
|
||||
<string name="battery_status_title">Stato batteria</string>
|
||||
<string name="bluetooth">Bluetooth</string>
|
||||
<string name="bluetooth_clear_list">Cancella elenco dispositivi</string>
|
||||
<string name="bluetooth_connect">Connetti</string>
|
||||
<string name="bluetooth_connectable">Solo collegabile</string>
|
||||
<string name="bluetooth_connected">Connesso</string>
|
||||
<string name="bluetooth_connecting">Connessione in corso\u2026</string>
|
||||
<string name="bluetooth_device">viva voce/cuffia</string>
|
||||
<string name="bluetooth_device_info">Informazioni dispositivo Bluetooth</string>
|
||||
<string name="bluetooth_device_info_alias">Alias dispositivo</string>
|
||||
<string name="bluetooth_device_info_delete">Rimuovi dispositivo</string>
|
||||
<string name="bluetooth_device_info_no_alias">Digitare l'alias qui\u2026</string>
|
||||
<string name="bluetooth_device_info_sdp">Servizi supportati nell'elenco</string>
|
||||
<string name="bluetooth_device_name">Nome dispositivo</string>
|
||||
<string name="bluetooth_devices">Dispositivi Bluetooth</string>
|
||||
<string name="bluetooth_disabled">Selezionare per attivare il Bluetooth</string>
|
||||
<string name="bluetooth_disconnect">Disconnetti</string>
|
||||
<string name="bluetooth_disconnect_blank"><xliff:g id="device_name">%1$s</xliff:g> verrà disconnesso</string>
|
||||
<string name="bluetooth_discoverability_panel_title">Nomina me\u2026</string>
|
||||
<string name="bluetooth_discoverable">Rilevabile per %1$s secondi</string>
|
||||
<string name="bluetooth_enable_text">Pulsante vuoto\u2026</string>
|
||||
<string name="bluetooth_enabled">Selezionare per attivare il Bluetooth</string>
|
||||
<string name="bluetooth_enabling">Attivazione Bluetooth in corso\u2026</string>
|
||||
<string name="bluetooth_enter_pin_msg">Immettere il PIN per\u0020</string>
|
||||
<string name="bluetooth_failed_to_enable">Impossibile attivare Bluetooth</string>
|
||||
<string name="bluetooth_is_discoverable">Rilevabile per %1$s secondi\u2026</string>
|
||||
<string name="bluetooth_name_not_set">Nessun nome impostato, utilizzando il nome account</string>
|
||||
<string name="bluetooth_neither">Non rilevabile né collegabile</string>
|
||||
<string name="bluetooth_new_data">Digitare i nuovi dati</string>
|
||||
<string name="bluetooth_new_data_cancel">Annulla</string>
|
||||
<string name="bluetooth_new_data_confirm">OK</string>
|
||||
<string name="bluetooth_not_connected">Accoppia a dispositivo</string>
|
||||
<string name="bluetooth_not_discoverable">Selezionare per rendere il dispositivo rilevabile</string>
|
||||
<string name="bluetooth_notif_message">Selezionare per accoppiare\u0020</string>
|
||||
<string name="bluetooth_notif_ticker">Richiesta accoppiamento Bluetooth</string>
|
||||
<string name="bluetooth_notif_title">Richiesta accoppiamento Bluetooth</string>
|
||||
<string name="bluetooth_pair">Accoppia</string>
|
||||
<string name="bluetooth_paired">Accoppiato</string>
|
||||
<string name="bluetooth_paired_not_nearby">Accoppiato</string>
|
||||
<string name="bluetooth_pairing">Accoppiamento in corso\u2026</string>
|
||||
<string name="bluetooth_pairing_msg">Accoppiamento in corso\u2026</string>
|
||||
<string name="bluetooth_pin_entry">Codice PIN Bluetooth</string>
|
||||
<string name="bluetooth_quick_toggle_summary">Selezionare per attivare il Bluetooth</string>
|
||||
<string name="bluetooth_quick_toggle_title">Bluetooth</string>
|
||||
<string name="bluetooth_scan_for_devices">Ricerca dispositivi</string>
|
||||
<string name="bluetooth_scan_for_new_devices">Ricerca nuovi dispositivi\u2026</string>
|
||||
<string name="bluetooth_scan_text">Pulsante vuoto\u2026</string>
|
||||
<string name="bluetooth_settings">Impostazioni Bluetooth</string>
|
||||
<string name="bluetooth_settings_summary">Gestisce le connessioni, imposta il nome del dispositivo e la rilevabilità</string>
|
||||
<string name="bluetooth_settings_text">Pulsante vuoto\u2026</string>
|
||||
<string name="bluetooth_settings_title">Impostazioni Bluetooth</string>
|
||||
<string name="bluetooth_starting">Avvio di Bluetooth\u2026</string>
|
||||
<string name="bluetooth_stopping">Interruzione Bluetooth\u2026</string>
|
||||
<string name="bluetooth_unknown">Sconosciuto</string>
|
||||
<string name="bluetooth_unpair">Disaccoppia</string>
|
||||
<string name="bluetooth_visibility">Rilevabile</string>
|
||||
<string name="bootloader_version">Versione del caricatore di avvio</string>
|
||||
<string name="brightness">Luminosità</string>
|
||||
<string name="build_date_label">Data build</string>
|
||||
<string name="build_description_label">Descrizione build</string>
|
||||
<string name="build_host_label">Host build</string>
|
||||
<string name="build_id_label">ID build</string>
|
||||
<string name="build_number">Numero build</string>
|
||||
<string name="build_type_label">Tipo build</string>
|
||||
<string name="build_user_label">Utente build</string>
|
||||
<string name="call_settings_summary">Imposta la casella vocale, il trasferimento chiamata, la chiamata in attesa, l'ID chiamante</string>
|
||||
<string name="call_settings_title">Impostazioni chiamata</string>
|
||||
<string name="cancel">Annulla</string>
|
||||
<string name="checkin_button_label">Verifica aggiornamento</string>
|
||||
<string name="checkin_download_failed">Non riuscito</string>
|
||||
<string name="checkin_download_label">Stato download</string>
|
||||
<string name="checkin_download_ongoing">Download in corso</string>
|
||||
<string name="checkin_download_pending">In sospeso</string>
|
||||
<string name="checkin_download_succeeded">Completato</string>
|
||||
<string name="checkin_download_suspended">Sospeso</string>
|
||||
<string name="checkin_download_unknown">Stato sconosciuto</string>
|
||||
<string name="checkin_failures_label">Errori dall'ultima operazione completata</string>
|
||||
<string name="checkin_last_time_label">Ultima verifica riuscita</string>
|
||||
<string name="checkin_started_message">Archiviazione avviata\u2026</string>
|
||||
<string name="checkin_status_label">Stato verifica</string>
|
||||
<string name="checkin_time_never">(mai)</string>
|
||||
<string name="checkin_upgrade_label">Aggiornamento in sospeso</string>
|
||||
<string name="choose_timezone">Seleziona fuso orario</string>
|
||||
<string name="choose_timezone_region">Seleziona area</string>
|
||||
<string name="clear_activities">Cancella predefiniti</string>
|
||||
<string name="clear_data_dlg_text">Tutte le informazioni salvate in questa applicazione verranno eliminate in maniera permanente.</string>
|
||||
<string name="clear_data_dlg_title">Elimina</string>
|
||||
<string name="clear_data_failed">Impossibile cancellare i dati dell'applicazione.</string>
|
||||
<string name="clear_user_data_text">Cancella dati</string>
|
||||
<string name="computing_size">Calcolo delle dimensioni dell'applicazione in corso\u2026</string>
|
||||
<string name="connect">Connetti</string>
|
||||
<string name="connect_to_blank">Connetti a <xliff:g id="network_name">%1$s</xliff:g></string>
|
||||
<string name="contributors_title">Collaboratori</string>
|
||||
<string name="copyright_title">Copyright</string>
|
||||
<string name="data_settings">Impostazioni dati</string>
|
||||
<string name="data_settings_summary">Scheda SD e archiviazione telefono, sincronizzazione dati</string>
|
||||
<string name="data_settings_title">Dati</string>
|
||||
<string name="data_size_label">Dati</string>
|
||||
<string name="date_and_time">Impostazioni di data e ora</string>
|
||||
<string name="date_and_time_settings_summary">Imposta la data, l'ora, il fuso orario e i formati</string>
|
||||
<string name="date_and_time_settings_title">Data e ora</string>
|
||||
<string name="date_time_24hour">Usa formato 24 ore</string>
|
||||
<string name="date_time_auto">Automatico</string>
|
||||
<string name="date_time_auto_summaryOff">Usa valori della rete</string>
|
||||
<string name="date_time_auto_summaryOn">Usa valori della rete</string>
|
||||
<string name="date_time_changeDate_text">Modifica data</string>
|
||||
<string name="date_time_changeTime_text">Modifica ora</string>
|
||||
<string name="date_time_dateDisplay_text">3 nov 1997</string>
|
||||
<string name="date_time_date_format">Seleziona formato data</string>
|
||||
<string name="date_time_set_date">Imposta data</string>
|
||||
<string name="date_time_set_time">Imposta ora</string>
|
||||
<string name="date_time_set_timezone">Imposta fuso orario</string>
|
||||
<string name="date_time_setzone_text">Modifica fuso orario</string>
|
||||
<string name="date_time_timeDisplay_text">11:45</string>
|
||||
<string name="date_time_timezone_label">Fuso orario:</string>
|
||||
<string name="debug_intent_sender_label">Mittente intenzione debug</string>
|
||||
<string name="default_date_format">gg/MM/aaaa</string>
|
||||
<string name="default_keyboard_device_label">Dispositivo tastiera predefinito</string>
|
||||
<string name="development_settings_summary">Impostazioni per lo sviluppo di applicazioni</string>
|
||||
<string name="development_settings_title">Sviluppo</string>
|
||||
<string name="device_info_asleeptime">Tempo di inattività</string>
|
||||
<string name="device_info_awaketime">Tempo riattivazione</string>
|
||||
<string name="device_info_default">Sconosciuto</string>
|
||||
<string name="device_info_label">Informazioni dispositivo</string>
|
||||
<string name="device_info_not_available">Non disponibile</string>
|
||||
<string name="device_info_settings">Stato telefono</string>
|
||||
<string name="device_info_uptime">Disponibilità</string>
|
||||
<string name="device_status">Stato</string>
|
||||
<string name="device_status_summary">IMEI, numero di telefono, segnale ecc...</string>
|
||||
<string name="dim_screen">Oscura schermo</string>
|
||||
<string name="disconnect_ums">Disconnetti dispositivo di memorizzazione di massa USB</string>
|
||||
<string name="display_font_size_label">Dimensioni carattere:</string>
|
||||
<string name="display_label">Display</string>
|
||||
<string name="display_preview_label">Anteprima:</string>
|
||||
<string name="display_settings">Impostazioni display</string>
|
||||
<string name="dlg_cancel">Annulla</string>
|
||||
<string name="dlg_ok">OK</string>
|
||||
<string name="done">OK</string>
|
||||
<string name="dtmf_tone_enable_summary_off">Riproduci toni durante la composizione</string>
|
||||
<string name="dtmf_tone_enable_summary_on">Riproduci toni durante la composizione</string>
|
||||
<string name="dtmf_tone_enable_title">Toni udibili al tocco</string>
|
||||
<string name="enable_adb">Debug USB</string>
|
||||
<string name="enable_adb_summary">Modalità debug quando è connesso USB</string>
|
||||
<string name="error_apn_empty">L'APN non può essere vuoto.</string>
|
||||
<string name="error_connecting">Impossibile collegarsi alla rete</string>
|
||||
<string name="error_mcc_not3">Il campo MCC deve essere costituito da 3 cifre.</string>
|
||||
<string name="error_mnc_not23">Il campo MNC deve essere costituito da 2 o 3 cifre.</string>
|
||||
<string name="error_name_empty">Il campo Nome non può essere vuoto.</string>
|
||||
<string name="error_saving">Impossibile salvare la rete</string>
|
||||
<string name="error_scanning">Impossibile cercare le reti</string>
|
||||
<string name="error_starting">Impossibile avviare Wi-Fi</string>
|
||||
<string name="error_stopping">Impossibile interrompere Wi-Fi</string>
|
||||
<string name="error_title">Attenzione</string>
|
||||
<string name="failed_to_connect">Impossibile connettersi a <xliff:g id="device_name">%1$s</xliff:g></string>
|
||||
<string name="failed_to_pair">Impossibile eseguire l'accoppiamento con <xliff:g id="device_name">%1$s</xliff:g></string>
|
||||
<string name="favorites_label">Preferiti</string>
|
||||
<string name="firmware_version">Versione firmware</string>
|
||||
<string name="font_size_preview_text">Servez à ce monsieur une bière et des kiwis.</string>
|
||||
<string name="font_size_save">OK</string>
|
||||
<string name="forget_network">Ignora</string>
|
||||
<string name="fragment_status_authenticating">Autenticazione con <xliff:g id="network_name">%1$s</xliff:g> in corso\u2026</string>
|
||||
<string name="fragment_status_connected">Connesso a <xliff:g id="network_name">%1$s</xliff:g></string>
|
||||
<string name="fragment_status_connecting">Connessione a <xliff:g id="network_name">%1$s</xliff:g> in corso\u2026</string>
|
||||
<string name="fragment_status_disconnected">Disconnesso</string>
|
||||
<string name="fragment_status_disconnecting">Disconnessione da <xliff:g id="network_name">%1$s</xliff:g> in corso\u2026</string>
|
||||
<string name="fragment_status_failed">Non riuscito</string>
|
||||
<string name="fragment_status_obtaining_ip">Ottenimento indirizzo IP da <xliff:g id="network_name">%1$s</xliff:g> in corso\u2026</string>
|
||||
<string name="fragment_status_scanning">Scansione in corso\u2026</string>
|
||||
<string name="gsm_version_baseband_label">Versione banda di base</string>
|
||||
<string name="gsm_version_ril_impl_label">Versione Impl RIL</string>
|
||||
<string name="install_all_warning">Il telefono e i dati personali sono più vulnerabili agli attacchi da parte di applicazioni
|
||||
di origini sconosciute. L'utente accetta di essere il solo responsabile degli eventuali
|
||||
danni al telefono o della perdita dei dati che potrebbero derivare dall'utilizzo di
|
||||
queste applicazioni.</string>
|
||||
<string name="install_applications">Origini sconosciute</string>
|
||||
<string name="install_unknown_applications">Consente l'installazione di applicazioni non commerciali</string>
|
||||
<string name="intent_sender_account_label">Account: </string>
|
||||
<string name="intent_sender_action_label">Azione:</string>
|
||||
<string name="intent_sender_data_label">Dati:</string>
|
||||
<string name="intent_sender_resource_label">Risorsa: </string>
|
||||
<string name="intent_sender_sendbroadcast_text">Invia broadcast</string>
|
||||
<string name="intent_sender_startactivity_text">Avvia attività</string>
|
||||
<string name="internal_memory">Dispositivo di memorizzazione interna telefono</string>
|
||||
<string name="ip_address">Indirizzo IP</string>
|
||||
<string name="kb_text">KB</string>
|
||||
<string name="keep_screen_on">Rimani attivo</string>
|
||||
<string name="keep_screen_on_summary">Lo schermo non diventa mai inattivo sotto carica</string>
|
||||
<string name="kernel_version">Versione kernel</string>
|
||||
<string name="kernel_version_label">Versione kernel Linux</string>
|
||||
<string name="keyguard_label">Coperchio</string>
|
||||
<string name="keyguard_password_button_text">OK</string>
|
||||
<string name="keyguard_password_confirm_new_label">Conferma nuova password:</string>
|
||||
<string name="keyguard_password_mismatch_error_text">Le due password non corrispondono. Digitarle di nuovo.</string>
|
||||
<string name="keyguard_password_new_label">Nuova password:</string>
|
||||
<string name="keyguard_password_old_label">Vecchia password:</string>
|
||||
<string name="keyguard_password_old_password_error_text">La vecchia password immessa non è corretta. Riprovare.</string>
|
||||
<string name="keyguard_pin_mod_text">Cambia PIN</string>
|
||||
<string name="keyguard_pw_mod_text">Seleziona codice di blocco</string>
|
||||
<string name="keyguard_sim_pin_label">PIN SIM</string>
|
||||
<string name="language_category">Impostazione lingua</string>
|
||||
<string name="language_picker_title">Impostazioni internazionali</string>
|
||||
<string name="language_settings">Testo</string>
|
||||
<string name="language_settings_summary">Selezionare le opzioni di correzione automatica testo</string>
|
||||
<string name="large_font">Grande</string>
|
||||
<string name="legal_information">Informazioni legali</string>
|
||||
<string name="legal_information_summary">Visualizza termini e condizioni</string>
|
||||
<string name="license_title">Licenza</string>
|
||||
<string name="location_gps">Attiva satelliti GPS</string>
|
||||
<string name="location_gps_disabled">Individuare il livello stradale (richiede più batteria e la vista del cielo)</string>
|
||||
<string name="location_label">Fornitore posizione:</string>
|
||||
<string name="location_neighborhood_level">Posizione determinata dalla reti mobili e/o Wi-Fi</string>
|
||||
<string name="location_network_based">Usa reti wireless</string>
|
||||
<string name="location_networks_disabled">Visualizza la posizione nelle applicazioni (ad esempio Mappe) utilizzando le reti wireless</string>
|
||||
<string name="location_source">Località</string>
|
||||
<string name="location_source_summary">Selezionare le origini per determinare la località</string>
|
||||
<string name="location_status">Stato:</string>
|
||||
<string name="location_street_level">Durante localizzazione, accuratezza a livello stradale (deselezionare per risparmiare batteria)</string>
|
||||
<string name="location_title">Fornti località</string>
|
||||
<string name="lock_example_message">Collegare almeno quattro punti.\n
|
||||
\nSelezionare \"Avanti\" quando si è pronti a creare il proprio codice.
|
||||
</string>
|
||||
<string name="lock_example_title">Codice di esempio</string>
|
||||
<string name="lock_settings_title">Codice blocco schermo</string>
|
||||
<string name="lock_title">Protezione del telefono</string>
|
||||
<string name="lockpattern_change_lock_pattern_label">Cambia codice di sblocco</string>
|
||||
<string name="lockpattern_confirm_button_text">Conferma</string>
|
||||
<string name="lockpattern_continue_button_text">Continua</string>
|
||||
<string name="lockpattern_need_to_confirm">Ridigitare il codice per confermare:</string>
|
||||
<string name="lockpattern_need_to_unlock">Conferma codice salvato:</string>
|
||||
<string name="lockpattern_need_to_unlock_wrong">Riprovare:</string>
|
||||
<string name="lockpattern_pattern_confirmed_header">Nuovo codice di sblocco:</string>
|
||||
<string name="lockpattern_pattern_entered_header">Codice registrato</string>
|
||||
<string name="lockpattern_recording_incorrect_too_short">Connettere ad almeno <xliff:g id="number">%d</xliff:g> punti. Riprovare:</string>
|
||||
<string name="lockpattern_recording_inprogress">Rilasciare il dito al termine.</string>
|
||||
<string name="lockpattern_recording_intro_footer">Premere Menu per visualizzare la Guida.</string>
|
||||
<string name="lockpattern_recording_intro_header">Digitare un codice di sblocco:</string>
|
||||
<string name="lockpattern_restart_button_text">Ridisegna</string>
|
||||
<string name="lockpattern_retry_button_text">Riprova</string>
|
||||
<string name="lockpattern_settings_change_lock_pattern">Cambia codice di sblocco</string>
|
||||
<string name="lockpattern_settings_choose_lock_pattern">Imposta codice di sblocco</string>
|
||||
<string name="lockpattern_settings_enable_summary">Digitare un codice per sbloccare lo schermo</string>
|
||||
<string name="lockpattern_settings_enable_title">Richiedi codice</string>
|
||||
<string name="lockpattern_settings_enable_visible_pattern_title">Usa codice visibile</string>
|
||||
<string name="lockpattern_settings_help_how_to_record">Procedura per la digitazione di un codice di sblocco:</string>
|
||||
<string name="lockpattern_settings_title">Codice di sblocco</string>
|
||||
<string name="lockpattern_too_many_failed_confirmation_attempts_footer">Riprovare tra <xliff:g id="number">%d</xliff:g> secondi.</string>
|
||||
<string name="lockpattern_too_many_failed_confirmation_attempts_header">Troppi tentativi errati</string>
|
||||
<string name="manage_applications_title">Gestisci applicazioni</string>
|
||||
<string name="manage_space_text">Gestisci spazio</string>
|
||||
<string name="manageapplications_settings_title">Gestisci applicazioni</string>
|
||||
<string name="mass_storage">Usa per dispositivo di memorizzazione USB</string>
|
||||
<string name="master_clear_button_text">Ripristina telefono</string>
|
||||
<string name="master_clear_desc">Questa azione consente di ripristinare i valori di fabbrica del telefono, cancellando tutti i dati e le applicazioni scaricate.</string>
|
||||
<string name="master_clear_failed">Nessun ripristino eseguito perché il servizio System Clear non è disponibile.</string>
|
||||
<string name="master_clear_final_button_text">Cancella tutto</string>
|
||||
<string name="master_clear_final_desc">Ripristinare il telefono, cancellando tutti i dati e le applicazioni? Questa azione è irreversibile.</string>
|
||||
<string name="master_clear_gesture_explanation">È necessario digitare un codice di sblocco per confermare un ripristino del telefono.</string>
|
||||
<string name="master_clear_gesture_prompt">Digitare il codice di sblocco:</string>
|
||||
<string name="master_clear_summary">Cancella tutti i dati sul telefono</string>
|
||||
<string name="master_clear_title">Ripristino dati di fabbrica</string>
|
||||
<string name="mb_text">MB</string>
|
||||
<string name="media_volume_summary">Imposta volume per musica e video</string>
|
||||
<string name="media_volume_title">Volume supporto</string>
|
||||
<string name="medium_font">Supporto</string>
|
||||
<string name="memory_available">Spazio disponibile</string>
|
||||
<string name="memory_size">Spazio totale</string>
|
||||
<string name="menu_cancel">Ignora</string>
|
||||
<string name="menu_delete">Elimina APN</string>
|
||||
<string name="menu_new">Nuovo APN</string>
|
||||
<string name="menu_save">Salva</string>
|
||||
<string name="model_number">Numero modello</string>
|
||||
<string name="network_settings_summary">Imposta le opzioni per roaming, reti e APN</string>
|
||||
<string name="network_settings_title">Reti mobili</string>
|
||||
<string name="networks">Selezione operatore</string>
|
||||
<string name="networks_title">Impostazioni rete</string>
|
||||
<string name="next_button_label">Avanti</string>
|
||||
<string name="next_label">Avanti</string>
|
||||
<string name="notification_sound_dialog_title">Seleziona suoneria notifica</string>
|
||||
<string name="notification_sound_summary">Imposta suoneria di notifica predefinita</string>
|
||||
<string name="notification_sound_title">Suoneria notifica</string>
|
||||
<string name="permissions_label">Autorizzazioni</string>
|
||||
<string name="phone_info_label">Informazioni telefono</string>
|
||||
<string name="phone_language">Seleziona lingua</string>
|
||||
<string name="ping_test_label">Esegui test ping</string>
|
||||
<string name="please_type_hex_key">Chiave esadecimale WEP (0-9, A-F)</string>
|
||||
<string name="please_type_passphrase">Password wireless</string>
|
||||
<string name="product_brand_label">Marchio prodotto</string>
|
||||
<string name="product_device_label">Tipo telefono</string>
|
||||
<string name="progress_scanning">Ricerca in corso</string>
|
||||
<string name="proxy_action_text">Salva</string>
|
||||
<string name="proxy_clear_text">Cancella</string>
|
||||
<string name="proxy_defaultView_text">Ripristina impostazioni predefinite</string>
|
||||
<string name="proxy_error">Attenzione</string>
|
||||
<string name="proxy_error_dismiss">OK</string>
|
||||
<string name="proxy_error_empty_host_set_port">Il campo della porta deve essere vuoto se il campo host è vuoto.</string>
|
||||
<string name="proxy_error_empty_port">È necessario completare il campo della porta.</string>
|
||||
<string name="proxy_error_invalid_host">Il nome dell'host immesso non è valido.</string>
|
||||
<string name="proxy_error_invalid_port">La porta specificata non è valida.</string>
|
||||
<string name="proxy_hostname_label">Nome host</string>
|
||||
<string name="proxy_port_label">Porta</string>
|
||||
<string name="proxy_settings_label">Impostazioni proxy</string>
|
||||
<string name="quick_launch_assign_application">Assegna applicazione</string>
|
||||
<string name="quick_launch_clear_cancel_button">Annulla</string>
|
||||
<string name="quick_launch_clear_dialog_message">Il collegamento per <xliff:g id="shortcut_letter">%1$s</xliff:g> (<xliff:g id="application_name">%2$s</xliff:g>) verrà cancellato.</string>
|
||||
<string name="quick_launch_clear_dialog_title">Cancella</string>
|
||||
<string name="quick_launch_clear_ok_button">OK</string>
|
||||
<string name="quick_launch_display_mode_applications">Applicazioni</string>
|
||||
<string name="quick_launch_display_mode_shortcuts">Collegamenti</string>
|
||||
<string name="quick_launch_no_shortcut">Nessun collegamento</string>
|
||||
<string name="quick_launch_shortcut">Cerca + <xliff:g id="shortcut_letter">%1$s</xliff:g></string>
|
||||
<string name="quick_launch_summary">Imposta scelte rapide da tastiera per avviare le applicazioni</string>
|
||||
<string name="quick_launch_title">Avvio rapido</string>
|
||||
<string name="radioInfo_cid">CID</string>
|
||||
<string name="radioInfo_data_connected">Connesso</string>
|
||||
<string name="radioInfo_data_connecting">Connessione in corso</string>
|
||||
<string name="radioInfo_data_disconnected">Disconnesso</string>
|
||||
<string name="radioInfo_data_suspended">Sospeso</string>
|
||||
<string name="radioInfo_display_asu">asu</string>
|
||||
<string name="radioInfo_display_bytes">byte</string>
|
||||
<string name="radioInfo_display_dbm">dBm</string>
|
||||
<string name="radioInfo_display_packets">pkts</string>
|
||||
<string name="radioInfo_lac">LAC</string>
|
||||
<string name="radioInfo_menu_disableData">Disabilita connessione dati</string>
|
||||
<string name="radioInfo_menu_disableDataOnBoot">Disabilita dati all'avvio</string>
|
||||
<string name="radioInfo_menu_enableData">Abilita connessione dati</string>
|
||||
<string name="radioInfo_menu_enableDataOnBoot">Abilita dati all'avvio</string>
|
||||
<string name="radioInfo_menu_getPDP">Ottieni elenco PDP</string>
|
||||
<string name="radioInfo_menu_viewADN">Visualizza Rubrica SIM</string>
|
||||
<string name="radioInfo_menu_viewFDN">Visualizza numeri dell'elenco numeri ammessi</string>
|
||||
<string name="radioInfo_menu_viewSDN">Visualizza numeri dell'elenco dei numeri di servizio</string>
|
||||
<string name="radioInfo_phone_idle">Inattivo</string>
|
||||
<string name="radioInfo_phone_offhook">Chiamata in corso</string>
|
||||
<string name="radioInfo_phone_ringing">Chiamata in corso</string>
|
||||
<string name="radioInfo_roaming_in">Roaming</string>
|
||||
<string name="radioInfo_roaming_not">Non roaming</string>
|
||||
<string name="radioInfo_service_emergency">Solo chiamate di emergenza</string>
|
||||
<string name="radioInfo_service_in">In servizio</string>
|
||||
<string name="radioInfo_service_off">Radio disattivata</string>
|
||||
<string name="radioInfo_service_out">Fuori servizio</string>
|
||||
<string name="radioInfo_unknown">sconosciuto</string>
|
||||
<string name="radio_controls_summary">Gestisci Wi-Fi, Bluetooth, modalità aereo e reti mobili</string>
|
||||
<string name="radio_controls_title">Controlli wireless</string>
|
||||
<string name="radio_info_band_mode_label">Seleziona banda radio</string>
|
||||
<string name="radio_info_call_redirect_label">Reindirizzamento chiamata:</string>
|
||||
<string name="radio_info_call_status_label">Stato chiamata:</string>
|
||||
<string name="radio_info_current_network_label">Rete corrente:</string>
|
||||
<string name="radio_info_data_attempts_label">Tentativi dati:</string>
|
||||
<string name="radio_info_data_successes_label">Dati riusciti:</string>
|
||||
<string name="radio_info_gprs_service_label">Servizio GPRS:</string>
|
||||
<string name="radio_info_gsm_disconnects_label">Disconnessioni GSM:</string>
|
||||
<string name="radio_info_gsm_service_label">Servizio GSM:</string>
|
||||
<string name="radio_info_http_client_test">Test client HTTP:</string>
|
||||
<string name="radio_info_imei_label">IMEI:</string>
|
||||
<string name="radio_info_imsi_label">IMSI:</string>
|
||||
<string name="radio_info_message_waiting_label">Messaggio in attesa:</string>
|
||||
<string name="radio_info_neighboring_location_label">CID adiacente:</string>
|
||||
<string name="radio_info_network_type_label">Tipo di rete:</string>
|
||||
<string name="radio_info_phone_number_label">Numero di telefono:</string>
|
||||
<string name="radio_info_ping_hostname">Nome host ping (www.google.com):</string>
|
||||
<string name="radio_info_ping_ipaddr">IpAddr ping:</string>
|
||||
<string name="radio_info_ppp_received_label">PPP ricevuto:</string>
|
||||
<string name="radio_info_ppp_resets_label">Numero di PPP reimpostati dall'avvio:</string>
|
||||
<string name="radio_info_ppp_sent_label">PPP inviato:</string>
|
||||
<string name="radio_info_radio_resets_label">Reimpostazioni radio:</string>
|
||||
<string name="radio_info_roaming_label">Roaming:</string>
|
||||
<string name="radio_info_set_perferred_label">Impostare il tipo di rete preferito:</string>
|
||||
<string name="radio_info_signal_location_label">Posizione:</string>
|
||||
<string name="radio_info_signal_strength_label">Intensità segnale:</string>
|
||||
<string name="radio_info_smsc_label">SMSC:</string>
|
||||
<string name="radio_info_smsc_refresh_label">Aggiorna</string>
|
||||
<string name="radio_info_smsc_update_label">Aggiorna</string>
|
||||
<string name="radio_info_toggle_ciph_label">Alterna cifratura</string>
|
||||
<string name="read_only">\u0020(Sola lettura)</string>
|
||||
<string name="recompute_size">Ricalcola dimensioni in corso\u2026</string>
|
||||
<string name="ring_volume_summary">Imposta volume per chiamate in ingresso</string>
|
||||
<string name="ring_volume_title">Volume suoneria</string>
|
||||
<string name="ringer_volume_instructions">Utilizzare i pulsanti del volume per regolare la suoneria</string>
|
||||
<string name="ringer_volume_ringer_mode_label">Modalità suoneria</string>
|
||||
<string name="ringer_volume_ringtone_label">Suoneria</string>
|
||||
<string name="ringer_volume_screen_increasing_text">Suoneria crescente</string>
|
||||
<string name="ringtone_summary">Imposta suoneria chiamata in ingresso predefinita</string>
|
||||
<string name="ringtone_title">Suoneria telefono</string>
|
||||
<string name="roaming">Roaming dati</string>
|
||||
<string name="roaming_disable">Impossibile connettersi ai servizi di dati durante il roaming</string>
|
||||
<string name="roaming_enable">Impossibile connettersi ai servizi di dati durante il roaming</string>
|
||||
<string name="roaming_reenable_message">Connessione dati perduta. La rete domestica con il roaming dei dati è stata lasciata disattivata.</string>
|
||||
<string name="roaming_reenable_title">Attenzione</string>
|
||||
<string name="roaming_turn_it_on_button">Attivarla</string>
|
||||
<string name="roaming_warning">Consentire il roaming dei dati? Può provocare l'aggiunta di notevoli spese per il roaming.</string>
|
||||
<string name="scan_wifi">Scansione</string>
|
||||
<string name="screen_off_timeout_label">Mai timeout quando sotto carica</string>
|
||||
<string name="screen_timeout">Timeout schermo</string>
|
||||
<string name="sd_card_settings_label">Scheda SD</string>
|
||||
<string name="sd_eject">Smonta/Espelli scheda SD</string>
|
||||
<string name="sd_memory">Scheda SD</string>
|
||||
<string name="sd_unavailable">Non disponibile</string>
|
||||
<string name="sdcard_changes_instructions">Le modifiche saranno effettive alla riconnessione del cavo USB</string>
|
||||
<string name="sdcard_removal_alert_ok">OK</string>
|
||||
<string name="sdcard_removal_alert_scolding">La scheda SD è stata rimossa quando ancora in uso.
|
||||
Per evitare di danneggiare la scheda, utilizzare la schermata Impostazioni della scheda SD per smontare la scheda prima della rimozione.</string>
|
||||
<string name="sdcard_removal_alert_title">Rimozione scheda SD non sicura</string>
|
||||
<string name="sdcard_setting">Scheda SD</string>
|
||||
<string name="sdcard_settings_available_bytes_label">Tipi disponibili:</string>
|
||||
<string name="sdcard_settings_bad_removal_status">La scheda SD è stata rimossa mentre ancora in uso.</string>
|
||||
<string name="sdcard_settings_mass_storage_status">La scheda SD è attualmente utilizzata da un dispositivo di memorizzazione di massa</string>
|
||||
<string name="sdcard_settings_not_present_status">Nessuna scheda SD</string>
|
||||
<string name="sdcard_settings_read_only_status">La scheda SD smontata è di sola lettura</string>
|
||||
<string name="sdcard_settings_scanning_status">Ricerca del supporto nella scheda SD\u2026</string>
|
||||
<string name="sdcard_settings_screen_mass_storage_text">Abilita dispositivo di memorizzazione di massa USB</string>
|
||||
<string name="sdcard_settings_total_bytes_label">Byte totali:</string>
|
||||
<string name="sdcard_settings_unmounted_status">È ora possibile rimuovere la scheda SD</string>
|
||||
<string name="sdcard_settings_used_bytes_label">Byte utilizzati:</string>
|
||||
<string name="sdcard_unmount">Smonta scheda SD</string>
|
||||
<string name="sdcard_unmountable_alert_ok">OK</string>
|
||||
<string name="sdcard_unmountable_alert_title">Scheda SD non leggibile</string>
|
||||
<string name="sdcard_unmountable_message">Impossibile leggere la scheda SD.
|
||||
Il file system può essere danneggiato o la scheda difettosa.</string>
|
||||
<string name="security">Protezione</string>
|
||||
<string name="security_and_data_label">Protezione e dati</string>
|
||||
<string name="security_passwords_title">Password</string>
|
||||
<string name="security_settings_desc">Specificare in questo campo il contenuto a cui può accedere l'applicazione sul telefono:</string>
|
||||
<string name="security_settings_summary">Località, sblocco schermo, blocco scheda SIM</string>
|
||||
<string name="security_settings_title">Protezione e ubicazione</string>
|
||||
<string name="select_your_language">Selezionare la lingua</string>
|
||||
<string name="set_lock_pattern_label">Digitare il codice di sblocco:</string>
|
||||
<string name="settings_chooser_pick_string">
|
||||
Inoltrare l'icona delle impostazioni a:
|
||||
</string>
|
||||
<string name="settings_label">Impostazioni</string>
|
||||
<string name="settings_license_activity_loading">Caricamento in corso\u2026</string>
|
||||
<string name="settings_license_activity_title">Apri licenze origine</string>
|
||||
<string name="settings_license_activity_unavailable">Si è verificato un problema nel caricamente delle licenze.</string>
|
||||
<string name="show_password">Password visibili</string>
|
||||
<string name="show_password_summary">Visualizza password durante la digitazione</string>
|
||||
<string name="signal">Intensità segnale</string>
|
||||
<string name="silent_mode_summary">Tutti i suoni eccetto quelli multimediali verranno disattivati</string>
|
||||
<string name="silent_mode_title">Modalità automatica</string>
|
||||
<string name="sim_bad_pin">PIN errato</string>
|
||||
<string name="sim_change_failed">Impossibile cambiare il PIN.\nÈ probabile che il PIN non sia corretto.</string>
|
||||
<string name="sim_change_pin">Cambia PIN SIM</string>
|
||||
<string name="sim_change_succeeded">PIN SIM cambiato</string>
|
||||
<string name="sim_disable_sim_lock">Disabilita blocco scheda SIM</string>
|
||||
<string name="sim_enable_sim_lock">Abilita blocco scheda SIM</string>
|
||||
<string name="sim_enter_cancel">Annulla</string>
|
||||
<string name="sim_enter_new">Digita nuovo PIN</string>
|
||||
<string name="sim_enter_ok">OK</string>
|
||||
<string name="sim_enter_old">Digita PIN precedente</string>
|
||||
<string name="sim_enter_pin">Digitare il PIN SIM</string>
|
||||
<string name="sim_lock_failed">Impossibile modificare lo stato di blocco della scheda SIM.\nÈ possibile che il PIN non sia corretto.</string>
|
||||
<string name="sim_lock_off">Richiede il PIN per utilizzare il telefono</string>
|
||||
<string name="sim_lock_on">Richiede il PIN per utilizzare il telefono</string>
|
||||
<string name="sim_lock_settings">Impostazioni blocco scheda SIM</string>
|
||||
<string name="sim_lock_settings_category">Configurazione blocco scheda SIM</string>
|
||||
<string name="sim_lock_settings_title">Blocco scheda SIM</string>
|
||||
<string name="sim_pin_change">Modifica codice PIN</string>
|
||||
<string name="sim_pin_toggle">Sblocca scheda SIM</string>
|
||||
<string name="sim_pins_dont_match">I PIN non corrispondono</string>
|
||||
<string name="sim_reenter_new">Reimmetti nuovo PIN</string>
|
||||
<string name="skip_button_label">Annulla</string>
|
||||
<string name="small_font">Piccolo</string>
|
||||
<string name="software_version">Versione software</string>
|
||||
<string name="sort_order_alpha">Ordine alfabetico</string>
|
||||
<string name="sort_order_size">Ordina per dimensioni (decrescente)</string>
|
||||
<string name="sound_and_display_settings">Suono e visualizzazione</string>
|
||||
<string name="sound_and_display_settings_summary">Imposta suonerie, notifiche e luminosità dello schermo</string>
|
||||
<string name="sound_effects_enable_summary_off">Riproduci audio quando si esegue una selezione schermo</string>
|
||||
<string name="sound_effects_enable_summary_on">Riproduci audio quando si esegue una selezione schermo</string>
|
||||
<string name="sound_effects_enable_title">Selezione sonora</string>
|
||||
<string name="sound_settings">Impostazioni audio</string>
|
||||
<string name="status_authenticating">Autenticazione in corso\u2026</string>
|
||||
<string name="status_awake_time">Tempo riattivazione</string>
|
||||
<string name="status_bt_address">Indirizzo Bluetooth</string>
|
||||
<string name="status_connected">Connesso</string>
|
||||
<string name="status_connecting">Connessione in corso\u2026</string>
|
||||
<string name="status_data_state">Accesso ai dati</string>
|
||||
<string name="status_disconnected">Disconnesso</string>
|
||||
<string name="status_disconnecting">Disconnessione in corso\u2026</string>
|
||||
<string name="status_failed">Non riuscito</string>
|
||||
<string name="status_imei">IMEI</string>
|
||||
<string name="status_imei_sv">IMEI SV</string>
|
||||
<string name="status_imsi">IMSI</string>
|
||||
<string name="status_network_type">Tipo di rete</string>
|
||||
<string name="status_number">Numero di telefono</string>
|
||||
<string name="status_obtaining_ip">Ottenimento indirizzo in corso\u2026</string>
|
||||
<string name="status_operator">Rete</string>
|
||||
<string name="status_roaming">Roaming</string>
|
||||
<string name="status_scanning">Scansione in corso\u2026</string>
|
||||
<string name="status_service_state">Stato servizio</string>
|
||||
<string name="status_signal_strength">Intensità segnale</string>
|
||||
<string name="status_unavailable">Non disponibile</string>
|
||||
<string name="status_up_time">Tempo di riattivazione</string>
|
||||
<string name="status_wifi_mac_address">Indirizzo MAC Wi-Fi</string>
|
||||
<string name="stay_on">Schermo sempre attivo quando sotto carica</string>
|
||||
<string name="storage_label">Dispositivo di memorizzazione</string>
|
||||
<string name="storage_settings_summary">Smontare la scheda SD, visualizzare il dispositivo di memorizzazione disponibile</string>
|
||||
<string name="storage_settings_title">Scheda SD e memoria telefono</string>
|
||||
<string name="sum_carrier_select">Selezionare un operatore di rete</string>
|
||||
<string name="summary_connection_failed">Connessione non riuscita, selezionare per riprovare</string>
|
||||
<string name="summary_not_in_range">Fuori intervallo</string>
|
||||
<string name="summary_remembered">Memorizzato</string>
|
||||
<string name="sync_automatically">Sincronizzazione automatica</string>
|
||||
<string name="sync_calendar">Calendario</string>
|
||||
<string name="sync_contacts">Contatti</string>
|
||||
<string name="sync_disabled">Selezionare per sincronizzare i dati automaticamente</string>
|
||||
<string name="sync_do_nothing">Non eseguire alcuna operazione per ora.</string>
|
||||
<string name="sync_enabled">Sincronizza dati automaticamente</string>
|
||||
<string name="sync_gmail">Gmail</string>
|
||||
<string name="sync_is_failing">La sincronizzazione presenta dei problemi. L'operazione verrà presto ripristinata.</string>
|
||||
<string name="sync_menu_sync_cancel">Annulla sincronizzazione</string>
|
||||
<string name="sync_menu_sync_now">Sincronizza ora</string>
|
||||
<string name="sync_really_delete">Eliminare gli elementi.</string>
|
||||
<string name="sync_settings">Sincronizzazione dati</string>
|
||||
<string name="sync_settings_summary">Scegliere le applicazioni sincronizzate</string>
|
||||
<string name="sync_too_many_deletes">Limite di eliminazioni superato</string>
|
||||
<string name="sync_too_many_deletes_desc">Esistono %d elementi eliminati per %s, account %s. Specificare l'operazione da eseguire.</string>
|
||||
<string name="sync_undo_deletes">Annullare le eliminazioni.</string>
|
||||
<string name="target_build_field_label">Tipo di build richiesta</string>
|
||||
<string name="team_title">Team</string>
|
||||
<string name="telephony_apn_label">APN:</string>
|
||||
<string name="telephony_mcc_label">MCC:</string>
|
||||
<string name="telephony_mmsc_label">MMSC:</string>
|
||||
<string name="telephony_mmsport_label">Porta MMS:</string>
|
||||
<string name="telephony_mmsproxy_label">Proxy MMS:</string>
|
||||
<string name="telephony_mnc_label">MNC:</string>
|
||||
<string name="telephony_name_label">Nome:</string>
|
||||
<string name="telephony_password_label">Password:</string>
|
||||
<string name="telephony_port_label">Porta:</string>
|
||||
<string name="telephony_proxy_label">Proxy:</string>
|
||||
<string name="telephony_server_label">Server:</string>
|
||||
<string name="telephony_user_label">Utente:</string>
|
||||
<string name="terms_title">Termini e condizioni</string>
|
||||
<string name="testing">Verifica in corso</string>
|
||||
<string name="testing_battery_info">Informazioni batteria</string>
|
||||
<string name="testing_phone_info">Informazioni sul telefono</string>
|
||||
<string name="testing_sim_toolkit">Kit di strumenti SIM</string>
|
||||
<string name="text_category">Impostazioni testo</string>
|
||||
<string name="total_size_label">Totale</string>
|
||||
<string name="turn_off_qxdm">Disabilita log SD QXDM</string>
|
||||
<string name="turn_off_radio">Disattiva radio</string>
|
||||
<string name="turn_on_qxdm">Abilita log SD QXDM</string>
|
||||
<string name="turn_on_radio">Attiva radio</string>
|
||||
<string name="underdeveloped_settings_label">Impostazioni ancora poco sviluppate</string>
|
||||
<string name="uninstall_failed">Impossibile disinstallare l'applicazione.</string>
|
||||
<string name="uninstall_text">Disinstalla</string>
|
||||
<string name="unknown">Sconosciuto</string>
|
||||
<string name="vibrate_summary">Vibrazione telefono per chiamate in ingresso</string>
|
||||
<string name="vibrate_title">Vibrazione telefono</string>
|
||||
<string name="wallpaper_label">Sfondo</string>
|
||||
<string name="wifi">Wi-Fi</string>
|
||||
<string name="wifi_access_points">Reti Wi-Fi</string>
|
||||
<string name="wifi_add_other_network">Aggiungere una rete Wi-Fi</string>
|
||||
<string name="wifi_context_menu_change_password">Cambia password</string>
|
||||
<string name="wifi_context_menu_connect">Connesso alla rete</string>
|
||||
<string name="wifi_context_menu_forget">Ignora rete</string>
|
||||
<string name="wifi_dhcp_timeout_error">Si è verificato un errore durante l'ottenimento di un indirizzo IP.</string>
|
||||
<string name="wifi_dns1">DNS 1</string>
|
||||
<string name="wifi_dns2">DNS 2</string>
|
||||
<string name="wifi_dns3">DNS 3</string>
|
||||
<string name="wifi_dns_label">dns:</string>
|
||||
<string name="wifi_error">Errore</string>
|
||||
<string name="wifi_gateway">Gateway</string>
|
||||
<string name="wifi_gateway_label">gateway:</string>
|
||||
<string name="wifi_generic_connection_error">Si è verificato un problema durante la connessione alla rete. Riprovare.</string>
|
||||
<string name="wifi_host_ip">ip host:</string>
|
||||
<string name="wifi_ip_address">Indirizzo IP</string>
|
||||
<string name="wifi_ip_settings_invalid_ip">Digitare un indirizzo IP valido.</string>
|
||||
<string name="wifi_ip_settings_menu_cancel">Annulla</string>
|
||||
<string name="wifi_ip_settings_menu_save">Salva</string>
|
||||
<string name="wifi_ip_settings_titlebar">Impostazioni IP</string>
|
||||
<string name="wifi_link_speed">Velocità</string>
|
||||
<string name="wifi_menu_advanced">Avanzate</string>
|
||||
<string name="wifi_netmask">Netmask</string>
|
||||
<string name="wifi_netmask_label">maschera di rete:</string>
|
||||
<string name="wifi_notify_open_networks">Notifica rete</string>
|
||||
<string name="wifi_notify_open_networks_summary">Notifica quando è disponibile una rete aperta</string>
|
||||
<string name="wifi_password_incorrect_error">La password di rete immessa non è corretta. Riprovare.</string>
|
||||
<string name="wifi_password_unchanged">(non modificato)</string>
|
||||
<string name="wifi_prefer_wifi">Preferisci Wi-Fi</string>
|
||||
<string name="wifi_quick_toggle_summary">Selezionare per attivare Wi-Fi</string>
|
||||
<string name="wifi_quick_toggle_title">Wi-Fi</string>
|
||||
<string name="wifi_save_config">Salva</string>
|
||||
<string name="wifi_screen_activate_text">Attiva</string>
|
||||
<string name="wifi_screen_dhcp_text">automatico</string>
|
||||
<string name="wifi_screen_dns_text">209.81.59.2</string>
|
||||
<string name="wifi_screen_gateway_text">192.168.20.1</string>
|
||||
<string name="wifi_screen_ip_text">192.168.20.10</string>
|
||||
<string name="wifi_screen_manual_text">manuale</string>
|
||||
<string name="wifi_screen_netmask_text">255.255.255.0</string>
|
||||
<string name="wifi_screen_status_text">Wi-Fi è in funzione</string>
|
||||
<string name="wifi_screen_test_text">Test</string>
|
||||
<string name="wifi_security">Protezione</string>
|
||||
<string name="wifi_security_open">Apri</string>
|
||||
<string name="wifi_security_unknown">Sconosciuto</string>
|
||||
<string name="wifi_security_verbose_open">Apri rete</string>
|
||||
<string name="wifi_security_verbose_wep">Protetto con WEP</string>
|
||||
<string name="wifi_security_verbose_wpa">Protetto con WPA</string>
|
||||
<string name="wifi_security_verbose_wpa2">Protetto con WPA2</string>
|
||||
<string name="wifi_security_wep">WEP</string>
|
||||
<string name="wifi_security_wpa">WPA</string>
|
||||
<string name="wifi_security_wpa2">WPA2</string>
|
||||
<string name="wifi_settings">Impostazioni Wi-Fi</string>
|
||||
<string name="wifi_settings_category">Impostazioni Wi-Fi</string>
|
||||
<string name="wifi_settings_summary">Configura e gestisci punti di accesso wireless</string>
|
||||
<string name="wifi_show_password">Visualizza password.</string>
|
||||
<string name="wifi_signal_0">Scarsa</string>
|
||||
<string name="wifi_signal_1">Mediocre</string>
|
||||
<string name="wifi_signal_2">Buona</string>
|
||||
<string name="wifi_signal_3">Eccellente</string>
|
||||
<string name="wifi_starting">Disattivazione in corso\u2026</string>
|
||||
<string name="wifi_status">Stato</string>
|
||||
<string name="wifi_stopping">Disattivazione in corso\u2026</string>
|
||||
<string name="wifi_type_ssid">Digitare il SSID della rete:</string>
|
||||
<string name="wifi_use_static_ip">Usa IP statico</string>
|
||||
<string name="wifi_wlan_id">id wlan:</string>
|
||||
</resources>
|
39
res/values-ja/arrays.xml
Normal file
@@ -0,0 +1,39 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<resources xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
|
||||
<string-array name="timezone_filters">
|
||||
<item>"アメリカ"</item>
|
||||
<item>"ヨーロッパ"</item>
|
||||
<item>"アフリカ"</item>
|
||||
<item>"アジア"</item>
|
||||
<item>"オーストラリア"</item>
|
||||
<item>"太平洋"</item>
|
||||
<item>"すべて"</item>
|
||||
</string-array>
|
||||
<string-array name="screen_timeout_entries">
|
||||
<item>"15秒"</item>
|
||||
<item>"30秒"</item>
|
||||
<item>"1分"</item>
|
||||
<item>"2分間"</item>
|
||||
<item>"10分間"</item>
|
||||
<item>"タイムアウトしない"</item>
|
||||
</string-array>
|
||||
<string-array name="wifi_security_entries">
|
||||
<item>"自動"</item>
|
||||
<item>"なし"</item>
|
||||
<item>"WEP"</item>
|
||||
<item>"WPA Personal"</item>
|
||||
<item>"WPA2 Personal"</item>
|
||||
</string-array>
|
||||
<string-array name="wifi_security_without_auto_entries">
|
||||
<item>"なし"</item>
|
||||
<item>"WEP"</item>
|
||||
<item>"WPA Personal"</item>
|
||||
<item>"WPA2 Personal"</item>
|
||||
</string-array>
|
||||
<string-array name="wifi_wep_type">
|
||||
<item>"自動"</item>
|
||||
<item>"WEP ASCII"</item>
|
||||
<item>"16進のWEP"</item>
|
||||
</string-array>
|
||||
</resources>
|
729
res/values-ja/strings.xml
Normal file
@@ -0,0 +1,729 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<resources xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
|
||||
<string name="device_info_default">"不明"</string>
|
||||
<string name="device_info_uptime">"起動時間"</string>
|
||||
<string name="device_info_awaketime">"使用時間"</string>
|
||||
<string name="device_info_asleeptime">"スリープ時間"</string>
|
||||
<string name="turn_on_radio">"無線通信をオン"</string>
|
||||
<string name="turn_off_radio">"無線通信オフ"</string>
|
||||
<string name="turn_on_qxdm">"QXDM SDログを有効にする"</string>
|
||||
<string name="turn_off_qxdm">"QXDM SDログを無効にする"</string>
|
||||
<string name="radioInfo_menu_viewADN">"SIMのアドレス帳を表示"</string>
|
||||
<string name="radioInfo_menu_viewFDN">"固定ダイヤルを表示"</string>
|
||||
<string name="radioInfo_menu_viewSDN">"サービス電話番号を表示"</string>
|
||||
<string name="radioInfo_menu_getPDP">"PDPリストを取得"</string>
|
||||
<string name="radioInfo_menu_enableData">"データ接続を有効にする"</string>
|
||||
<string name="radioInfo_menu_disableData">"データ接続を無効にする"</string>
|
||||
<string name="radioInfo_menu_enableDataOnBoot">"起動時にデータを有効にする"</string>
|
||||
<string name="radioInfo_menu_disableDataOnBoot">"起動時にデータを無効にする"</string>
|
||||
<string name="radioInfo_service_in">"使用中"</string>
|
||||
<string name="radioInfo_service_out">"圏外"</string>
|
||||
<string name="radioInfo_service_emergency">"緊急電話のみ"</string>
|
||||
<string name="radioInfo_service_off">"無線通信オフ"</string>
|
||||
<string name="radioInfo_roaming_in">"ローミング"</string>
|
||||
<string name="radioInfo_roaming_not">"ローミングなし"</string>
|
||||
<string name="radioInfo_phone_idle">"アイドル"</string>
|
||||
<string name="radioInfo_phone_ringing">"着信中"</string>
|
||||
<string name="radioInfo_phone_offhook">"通話中"</string>
|
||||
<string name="radioInfo_data_disconnected">"切断"</string>
|
||||
<string name="radioInfo_data_connecting">"接続中"</string>
|
||||
<string name="radioInfo_data_connected">"接続"</string>
|
||||
<string name="radioInfo_data_suspended">"強制停止"</string>
|
||||
<string name="radioInfo_unknown">"不明"</string>
|
||||
<string name="radioInfo_display_packets">"pkts"</string>
|
||||
<string name="radioInfo_display_bytes">"バイト"</string>
|
||||
<string name="radioInfo_display_dbm">"dBm"</string>
|
||||
<string name="radioInfo_display_asu">"asu"</string>
|
||||
<string name="radioInfo_lac">"LAC"</string>
|
||||
<string name="radioInfo_cid">"CID"</string>
|
||||
<string name="sdcard_unmount">"SDカードのマウント解除"</string>
|
||||
<string name="small_font">"小"</string>
|
||||
<string name="medium_font">"中"</string>
|
||||
<string name="large_font">"大"</string>
|
||||
<string name="font_size_save">"OK"</string>
|
||||
<string name="sdcard_setting">"SDカード"</string>
|
||||
<string name="screen_off_timeout_label">"充電中はタイムアウトにしない"</string>
|
||||
<string name="stay_on">"充電中に画面をスリープにしない"</string>
|
||||
<string name="app_launcher_newView_text">"新しいAppLauncher"</string>
|
||||
<string name="battery_info_status_label">"バッテリステータス:"</string>
|
||||
<string name="battery_info_scale_label">"バッテリ残量表示:"</string>
|
||||
<string name="battery_info_level_label">"バッテリレベル:"</string>
|
||||
<string name="battery_info_health_label">"バッテリの状態:"</string>
|
||||
<string name="battery_info_technology_label">"バッテリ技術:"</string>
|
||||
<string name="battery_info_voltage_label">"バッテリ電圧:"</string>
|
||||
<string name="battery_info_voltage_units">"mV"</string>
|
||||
<string name="battery_info_temperature_label">"バッテリ温度:"</string>
|
||||
<string name="battery_info_temperature_units">"°C"</string>
|
||||
<string name="battery_info_uptime">"起動してからの時間:"</string>
|
||||
<string name="battery_info_awake_battery">"バッテリのアウェイク時間:"</string>
|
||||
<string name="battery_info_awake_plugged">"充電時のアウェイク時間:"</string>
|
||||
<string name="battery_info_screen_on">"画面をオンにした時刻:"</string>
|
||||
<string name="battery_info_status_unknown">"不明"</string>
|
||||
<string name="battery_info_status_charging">"充電中"</string>
|
||||
<string name="battery_info_status_charging_ac">"(AC)"</string>
|
||||
<string name="battery_info_status_charging_usb">"(USB)"</string>
|
||||
<string name="battery_info_status_discharging">"放電中"</string>
|
||||
<string name="battery_info_status_not_charging">"非充電中"</string>
|
||||
<string name="battery_info_status_full">"フル"</string>
|
||||
<string name="battery_info_health_unknown">"不明"</string>
|
||||
<string name="battery_info_health_good">"良い"</string>
|
||||
<string name="battery_info_health_overheat">"オーバーヒート"</string>
|
||||
<string name="battery_info_health_dead">"残量なし"</string>
|
||||
<string name="battery_info_health_over_voltage">"過電圧"</string>
|
||||
<string name="battery_info_health_unspecified_failure">"不明なエラー"</string>
|
||||
<string name="bluetooth">"Bluetooth"</string>
|
||||
<string name="bluetooth_stopping">"Bluetoothを停止中..."</string>
|
||||
<!-- no translation found for bluetooth_disabled (3281654100455454605) -->
|
||||
<skip />
|
||||
<!-- no translation found for bluetooth_enabled (314506563815464155) -->
|
||||
<skip />
|
||||
<string name="bluetooth_enabling">"Bluetoothをオンにしています..."</string>
|
||||
<string name="bluetooth_visibility">"検出可能"</string>
|
||||
<string name="bluetooth_is_discoverable">"<xliff:g id="DISCOVERABLE_TIME_PERIOD">%1$s</xliff:g>秒間検出可能..."</string>
|
||||
<!-- no translation found for bluetooth_not_discoverable (128269993123955177) -->
|
||||
<skip />
|
||||
<string name="bluetooth_devices">"Bluetoothデバイス"</string>
|
||||
<string name="bluetooth_device_name">"デバイス名"</string>
|
||||
<string name="bluetooth_name_not_set">"名前が設定されていない場合、アカウント名を使用する"</string>
|
||||
<string name="bluetooth_scan_for_devices">"デバイスのスキャン"</string>
|
||||
<string name="bluetooth_clear_list">"デバイスリストをクリア"</string>
|
||||
<!-- no translation found for bluetooth_disconnect_blank (8102076504922229274) -->
|
||||
<skip />
|
||||
<string name="bluetooth_connected">"接続"</string>
|
||||
<!-- no translation found for bluetooth_disconnected (6557104142667339895) -->
|
||||
<skip />
|
||||
<!-- no translation found for bluetooth_disconnecting (8913264760027764974) -->
|
||||
<skip />
|
||||
<string name="bluetooth_connecting">"接続中..."</string>
|
||||
<!-- no translation found for bluetooth_unknown (644716244548801421) -->
|
||||
<skip />
|
||||
<string name="bluetooth_not_connected">"このデバイスをペアに設定する"</string>
|
||||
<string name="bluetooth_failed_to_enable">"Bluetoothをオンにできません"</string>
|
||||
<string name="bluetooth_pairing">"ペアとして設定中..."</string>
|
||||
<!-- no translation found for failed_to_pair (7648018965110976948) -->
|
||||
<skip />
|
||||
<!-- no translation found for failed_to_connect (4770209428036813667) -->
|
||||
<skip />
|
||||
<string name="bluetooth_paired">"ペア設定"</string>
|
||||
<string name="bluetooth_paired_not_nearby">"ペア設定"</string>
|
||||
<string name="bluetooth_device">"ハンズフリー/ヘッドセット"</string>
|
||||
<string name="bluetooth_disconnect">"接続を解除"</string>
|
||||
<string name="bluetooth_connect">"接続"</string>
|
||||
<string name="bluetooth_unpair">"ペアを解除"</string>
|
||||
<string name="bluetooth_pair">"ペアに設定"</string>
|
||||
<string name="progress_scanning">"スキャン中"</string>
|
||||
<string name="bluetooth_notif_ticker">"Bluetoothペア設定リクエスト"</string>
|
||||
<!-- no translation found for bluetooth_notif_title (2485175521845371514) -->
|
||||
<skip />
|
||||
<string name="bluetooth_notif_message">"ペアとして設定"</string>
|
||||
<string name="date_and_time">"日付と時刻の設定"</string>
|
||||
<string name="date_time_12_hour_sample">"1:00 PM"</string>
|
||||
<string name="date_time_24_hour_sample">"13:00"</string>
|
||||
<string name="choose_timezone">"タイムゾーンの選択"</string>
|
||||
<string name="display_preview_label">"プレビュー:"</string>
|
||||
<string name="display_font_size_label">"フォントサイズ:"</string>
|
||||
<!-- no translation found for intent_sender_data_label (6332324780477289261) -->
|
||||
<skip />
|
||||
<string name="intent_sender_sendbroadcast_text">"<xliff:g id="BROADCAST">broadcast</xliff:g>を配信"</string>
|
||||
<string name="intent_sender_action_label">"<xliff:g id="ACTION">Action</xliff:g>:"</string>
|
||||
<string name="intent_sender_startactivity_text">"<xliff:g id="ACTIVITY">activity</xliff:g>を開始"</string>
|
||||
<string name="intent_sender_resource_label">"<xliff:g id="RESOURCE">Resource</xliff:g>:"</string>
|
||||
<string name="intent_sender_account_label">"アカウント:"</string>
|
||||
<string name="keyguard_pw_mod_text">"ロックパターンの選択"</string>
|
||||
<string name="keyguard_pin_mod_text">"PINの変更"</string>
|
||||
<string name="keyguard_label">"キーガード"</string>
|
||||
<string name="keyguard_sim_pin_label">"SIM PIN"</string>
|
||||
<string name="keyguard_password_old_password_error_text">"入力した古いパスワードは正しくありません。再入力してください。"</string>
|
||||
<string name="keyguard_password_button_text">"OK"</string>
|
||||
<string name="keyguard_password_confirm_new_label">"新しいパスワードの確認入力:"</string>
|
||||
<string name="keyguard_password_new_label">"新しいパスワード:"</string>
|
||||
<string name="keyguard_password_old_label">"古いパスワード:"</string>
|
||||
<string name="keyguard_password_mismatch_error_text">"2つのパスワードが一致しません。再入力してください。"</string>
|
||||
<string name="proxy_clear_text">"クリア"</string>
|
||||
<string name="proxy_port_label">"ポート"</string>
|
||||
<string name="proxy_defaultView_text">"デフォルトに戻す"</string>
|
||||
<string name="proxy_action_text">"保存"</string>
|
||||
<string name="proxy_hostname_label">"ホスト名"</string>
|
||||
<string name="proxy_error">"注意"</string>
|
||||
<string name="proxy_error_dismiss">"OK"</string>
|
||||
<string name="proxy_error_invalid_host">"入力したホスト名は無効です。"</string>
|
||||
<string name="proxy_error_empty_port">"[ポート]フィールドに入力してください。"</string>
|
||||
<string name="proxy_error_empty_host_set_port">"[ホスト]フィールドが空の場合は、[ポート]フィールドも空にしてください。"</string>
|
||||
<string name="proxy_error_invalid_port">"入力したポートは無効です。"</string>
|
||||
<string name="radio_info_signal_location_label">"位置:"</string>
|
||||
<string name="radio_info_neighboring_location_label">"近くのCID:"</string>
|
||||
<string name="radio_info_data_attempts_label">"データの試行:"</string>
|
||||
<string name="radio_info_imsi_label">"IMSI:"</string>
|
||||
<string name="radio_info_gprs_service_label">"GPRSサービス:"</string>
|
||||
<string name="radio_info_roaming_label">"ローミング:"</string>
|
||||
<string name="radio_info_imei_label">"IMEI:"</string>
|
||||
<string name="radio_info_call_redirect_label">"通話のリダイレクト:"</string>
|
||||
<string name="radio_info_ppp_resets_label">"ブート後のPPPリセット回数:"</string>
|
||||
<string name="radio_info_gsm_disconnects_label">"GSM切断:"</string>
|
||||
<string name="radio_info_current_network_label">"現在のネットワーク:"</string>
|
||||
<string name="radio_info_data_successes_label">"データ成功:"</string>
|
||||
<string name="radio_info_ppp_received_label">"PPP受信:"</string>
|
||||
<string name="radio_info_gsm_service_label">"GSMサービス:"</string>
|
||||
<string name="radio_info_signal_strength_label">"信号の状態:"</string>
|
||||
<string name="radio_info_call_status_label">"通話ステータス:"</string>
|
||||
<string name="radio_info_ppp_sent_label">"PPP送信:"</string>
|
||||
<string name="radio_info_radio_resets_label">"無線通信のリセット:"</string>
|
||||
<string name="radio_info_message_waiting_label">"メッセージ待機中:"</string>
|
||||
<string name="radio_info_phone_number_label">"電話番号:"</string>
|
||||
<string name="radio_info_band_mode_label">"無線バンドを選択"</string>
|
||||
<string name="radio_info_network_type_label">"ネットワークタイプ:"</string>
|
||||
<string name="radio_info_set_perferred_label">"優先ネットワークタイプを設定"</string>
|
||||
<string name="radio_info_ping_ipaddr">"IPアドレスのPing:"</string>
|
||||
<string name="radio_info_ping_hostname">"ホスト名 (www.google.co.jp) のPing:"</string>
|
||||
<string name="radio_info_http_client_test">"HTTPクライアントテスト:"</string>
|
||||
<string name="radio_info_toggle_ciph_label">"暗号化の切り替え"</string>
|
||||
<string name="ping_test_label">"pingテストの実行"</string>
|
||||
<string name="radio_info_smsc_label">"SMSC:"</string>
|
||||
<string name="radio_info_smsc_update_label">"更新"</string>
|
||||
<string name="radio_info_smsc_refresh_label">"更新"</string>
|
||||
<string name="band_mode_title">"GSM/UMTSバンドの設定"</string>
|
||||
<string name="band_mode_loading">"バンドリストを読み込み中..."</string>
|
||||
<string name="band_mode_set">"設定"</string>
|
||||
<string name="band_mode_failed">"失敗"</string>
|
||||
<string name="band_mode_succeeded">"成功"</string>
|
||||
<string name="ringer_volume_ringer_mode_label">"着信音のモード"</string>
|
||||
<string name="ringer_volume_screen_increasing_text">"音量を徐々にアップ"</string>
|
||||
<string name="ringer_volume_ringtone_label">"着信音"</string>
|
||||
<string name="ringer_volume_instructions">"音量ボタンで着信音の音量を調整します"</string>
|
||||
<string name="sdcard_changes_instructions">"USBケーブルの再接続時に変更が有効になります"</string>
|
||||
<string name="sdcard_settings_screen_mass_storage_text">"USBマスストレージを有効にする"</string>
|
||||
<string name="sdcard_settings_total_bytes_label">"合計バイト数:"</string>
|
||||
<string name="sdcard_settings_not_present_status">"SDカードがありません"</string>
|
||||
<string name="sdcard_settings_available_bytes_label">"利用可能バイト数:"</string>
|
||||
<string name="sdcard_settings_mass_storage_status">"SDカードをマスストレージデバイスとして使用中"</string>
|
||||
<string name="sdcard_settings_unmounted_status">"SDカードを安全に取り外せます"</string>
|
||||
<string name="sdcard_settings_bad_removal_status">"SDカードが使用中に取り外されました。"</string>
|
||||
<string name="sdcard_settings_used_bytes_label">"使用済みバイト数:"</string>
|
||||
<string name="sdcard_settings_scanning_status">"メディア用のSDカードをスキャン中..."</string>
|
||||
<string name="sdcard_settings_read_only_status">"読み取り専用としてSDカードをマウントしました"</string>
|
||||
<string name="sdcard_removal_alert_title">"安全でないSDカードの取り外し"</string>
|
||||
<string name="sdcard_unmountable_alert_title">"SDカードが読み取れません"</string>
|
||||
<string name="telephony_user_label">"ユーザー:"</string>
|
||||
<string name="telephony_server_label">"サーバー:"</string>
|
||||
<string name="telephony_name_label">"名前:"</string>
|
||||
<string name="telephony_mmsc_label">"MMSC:"</string>
|
||||
<string name="telephony_apn_label">"APN:"</string>
|
||||
<string name="telephony_mcc_label">"MCC:"</string>
|
||||
<string name="telephony_port_label">"ポート:"</string>
|
||||
<string name="telephony_password_label">"パスワード:"</string>
|
||||
<string name="telephony_proxy_label">"プロキシ:"</string>
|
||||
<string name="telephony_mnc_label">"MNC:"</string>
|
||||
<string name="telephony_mmsproxy_label">"MMSプロキシ:"</string>
|
||||
<string name="telephony_mmsport_label">"MMSポート:"</string>
|
||||
<string name="next_label">"次へ"</string>
|
||||
<string name="language_picker_title">"ロケール"</string>
|
||||
<string name="select_your_language">"言語を選択"</string>
|
||||
<string name="activity_picker_label">"操作の選択"</string>
|
||||
<string name="device_info_label">"デバイス情報"</string>
|
||||
<string name="battery_info_label">"バッテリ情報"</string>
|
||||
<string name="display_label">"表示"</string>
|
||||
<string name="phone_info_label">"携帯電話情報"</string>
|
||||
<string name="sd_card_settings_label">"SDカード"</string>
|
||||
<string name="proxy_settings_label">"プロキシ設定"</string>
|
||||
<string name="cancel">"キャンセル"</string>
|
||||
<string name="settings_label">"設定"</string>
|
||||
<string name="airplane_mode">"機内モード"</string>
|
||||
<!-- no translation found for airplane_mode_summary (3154817401368780988) -->
|
||||
<skip />
|
||||
<string name="airplane_mode_turning_on">"ワイヤレス接続を無効にしています..."</string>
|
||||
<string name="airplane_mode_turning_off">"ワイヤレス接続を有効にしています..."</string>
|
||||
<string name="radio_controls_title">"ワイヤレス制御"</string>
|
||||
<string name="radio_controls_summary">"Wi-Fi、Bluetooth、機内モード、モバイルネットワークを管理"</string>
|
||||
<string name="date_and_time_settings_title">"日付と時刻"</string>
|
||||
<string name="date_and_time_settings_summary">"日付、時刻、タイムゾーン、形式を設定する"</string>
|
||||
<string name="date_time_auto">"自動"</string>
|
||||
<string name="date_time_auto_summaryOn">"ネットワーク指定の値を使用"</string>
|
||||
<string name="date_time_auto_summaryOff">"ネットワーク指定の値を使用"</string>
|
||||
<string name="date_time_24hour">"24時間表示を使用"</string>
|
||||
<string name="date_time_set_time">"時刻を設定"</string>
|
||||
<!-- no translation found for date_time_set_timezone (5045627174274377814) -->
|
||||
<skip />
|
||||
<string name="date_time_set_date">"日付を設定"</string>
|
||||
<string name="date_time_date_format">"日付の形式を選択"</string>
|
||||
<!-- no translation found for zone_list_menu_sort_alphabetically (5683377702671088588) -->
|
||||
<skip />
|
||||
<!-- no translation found for zone_list_menu_sort_by_timezone (2720190443744884114) -->
|
||||
<skip />
|
||||
<string name="security_settings_title">"セキュリティと位置"</string>
|
||||
<!-- no translation found for security_settings_summary (8145883103362174000) -->
|
||||
<skip />
|
||||
<string name="security_passwords_title">"パスワード"</string>
|
||||
<string name="bluetooth_quick_toggle_title">"Bluetooth"</string>
|
||||
<!-- no translation found for bluetooth_quick_toggle_summary (5293641680139873341) -->
|
||||
<skip />
|
||||
<string name="bluetooth_settings">"Bluetooth設定"</string>
|
||||
<string name="bluetooth_settings_title">"Bluetooth設定"</string>
|
||||
<string name="bluetooth_settings_summary">"接続を管理、デイバイス名を設定、検出可能に設定"</string>
|
||||
<!-- no translation found for bluetooth_pin_entry (5627349871303455279) -->
|
||||
<skip />
|
||||
<string name="bluetooth_device_info">"Bluetoothデバイス情報"</string>
|
||||
<string name="bluetooth_pairing_msg">"ペアとして設定中..."</string>
|
||||
<!-- no translation found for bluetooth_enter_pin_msg (7551139612735632370) -->
|
||||
<skip />
|
||||
<!-- no translation found for bluetooth_error_title (538287072376677166) -->
|
||||
<skip />
|
||||
<!-- no translation found for bluetooth_pairing_error_message (2852744547246910349) -->
|
||||
<skip />
|
||||
<!-- no translation found for bluetooth_pairing_alternate_error_message (1731286765420671521) -->
|
||||
<skip />
|
||||
<!-- no translation found for bluetooth_pairing_pin_error_message (6938408362011024289) -->
|
||||
<skip />
|
||||
<!-- no translation found for bluetooth_connecting_error_message (1779660510084746802) -->
|
||||
<skip />
|
||||
<string name="bluetooth_new_data">"新しいデータの入力"</string>
|
||||
<string name="bluetooth_new_data_confirm">"OK"</string>
|
||||
<string name="bluetooth_new_data_cancel">"キャンセル"</string>
|
||||
<string name="bluetooth_scan_for_new_devices">"新しいデバイスのスキャン中..."</string>
|
||||
<string name="bluetooth_discoverability_panel_title">"携帯電話側で設定..."</string>
|
||||
<string name="bluetooth_discoverable">"<xliff:g id="DISCOVERABLE_TIME_PERIOD">%1$s</xliff:g>秒間検出可能"</string>
|
||||
<string name="bluetooth_connectable">"接続可能時のみ"</string>
|
||||
<string name="bluetooth_neither">"検出できないか、接続できません"</string>
|
||||
<!-- no translation found for bluetooth_preference_scan_title (2277464653118896016) -->
|
||||
<skip />
|
||||
<!-- no translation found for bluetooth_preference_scan_summary (2368330460781052669) -->
|
||||
<skip />
|
||||
<!-- no translation found for bluetooth_device_context_connect (3997659895003244941) -->
|
||||
<skip />
|
||||
<!-- no translation found for bluetooth_device_context_disconnect (8220072022970148683) -->
|
||||
<skip />
|
||||
<!-- no translation found for bluetooth_device_context_pair_connect (7611522504813927727) -->
|
||||
<skip />
|
||||
<!-- no translation found for bluetooth_device_context_unpair (662992425948536144) -->
|
||||
<skip />
|
||||
<!-- no translation found for bluetooth_device_context_disconnect_unpair (7644014238070043798) -->
|
||||
<skip />
|
||||
<!-- no translation found for bluetooth_device_context_connect_advanced (2643129703569788771) -->
|
||||
<skip />
|
||||
<!-- no translation found for bluetooth_connect_specific_profiles_title (6952214406025825164) -->
|
||||
<skip />
|
||||
<!-- no translation found for bluetooth_profile_a2dp (3259633293424539529) -->
|
||||
<skip />
|
||||
<!-- no translation found for bluetooth_profile_headset (1874975688666658946) -->
|
||||
<skip />
|
||||
<!-- no translation found for bluetooth_summary_connected_to_a2dp (510833839847758664) -->
|
||||
<skip />
|
||||
<!-- no translation found for bluetooth_summary_connected_to_headset (4876496372728623918) -->
|
||||
<skip />
|
||||
<!-- no translation found for bluetooth_summary_connected_to_a2dp_headset (3045032710457800891) -->
|
||||
<skip />
|
||||
<!-- no translation found for bluetooth_device_advanced_title (528816860793581131) -->
|
||||
<skip />
|
||||
<!-- no translation found for bluetooth_device_advanced_online_mode_title (3689050071425683114) -->
|
||||
<skip />
|
||||
<!-- no translation found for bluetooth_device_advanced_online_mode_summary (1204424107263248336) -->
|
||||
<skip />
|
||||
<!-- no translation found for bluetooth_device_advanced_profile_header_title (3764437426089639639) -->
|
||||
<skip />
|
||||
<!-- no translation found for bluetooth_a2dp_profile_summary_connected (963376081347721598) -->
|
||||
<skip />
|
||||
<!-- no translation found for bluetooth_headset_profile_summary_connected (7661070206715520671) -->
|
||||
<skip />
|
||||
<!-- no translation found for bluetooth_a2dp_profile_summary_use_for (4630849022250168427) -->
|
||||
<skip />
|
||||
<!-- no translation found for bluetooth_headset_profile_summary_use_for (8705753622443862627) -->
|
||||
<skip />
|
||||
<string name="wifi">"Wi-Fi"</string>
|
||||
<string name="wifi_quick_toggle_title">"Wi-Fi"</string>
|
||||
<!-- no translation found for wifi_quick_toggle_summary (1047950931623694366) -->
|
||||
<skip />
|
||||
<string name="wifi_settings">"Wi-Fi設定"</string>
|
||||
<string name="wifi_settings_category">"Wi-Fi設定"</string>
|
||||
<string name="wifi_settings_summary">"ワイヤレスアクセスポイントの設定、管理"</string>
|
||||
<string name="forget_network">"切断"</string>
|
||||
<string name="wifi_status">"ステータス"</string>
|
||||
<string name="wifi_link_speed">"速度"</string>
|
||||
<string name="wifi_signal_3">"非常に良い"</string>
|
||||
<string name="wifi_signal_2">"良い"</string>
|
||||
<string name="wifi_signal_1">"普通"</string>
|
||||
<string name="wifi_signal_0">"悪い"</string>
|
||||
<string name="security">"セキュリティ"</string>
|
||||
<string name="wifi_security_open">"オープン"</string>
|
||||
<string name="wifi_security_wep">"WEP"</string>
|
||||
<string name="wifi_security_wpa">"WPA"</string>
|
||||
<string name="wifi_security_wpa2">"WPA2"</string>
|
||||
<string name="wifi_security_unknown">"不明"</string>
|
||||
<string name="wifi_security_verbose_open">"オープンネットワーク"</string>
|
||||
<string name="wifi_security_verbose_wep">"WEPにより保護"</string>
|
||||
<string name="wifi_security_verbose_wpa">"WPAにより保護"</string>
|
||||
<string name="wifi_security_verbose_wpa2">"WPA2により保護"</string>
|
||||
<string name="ip_address">"IPアドレス"</string>
|
||||
<string name="signal">"信号の状態"</string>
|
||||
<string name="wifi_starting">"オンにしています..."</string>
|
||||
<string name="wifi_stopping">"オフにしています..."</string>
|
||||
<string name="wifi_error">"エラー"</string>
|
||||
<string name="error_starting">"Wi-Fiを開始できません"</string>
|
||||
<string name="error_stopping">"Wi-Fiを停止できません"</string>
|
||||
<string name="error_scanning">"ネットワークをスキャンできません"</string>
|
||||
<string name="error_connecting">"ネットワークに接続できません"</string>
|
||||
<string name="error_saving">"ネットワークを保存できません"</string>
|
||||
<string name="connect">"接続"</string>
|
||||
<string name="connect_to_blank">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g>に接続"</string>
|
||||
<string name="please_type_passphrase">"ワイヤレス用パスワード"</string>
|
||||
<string name="please_type_hex_key">"WEPの16進キー (0~9、A~F)"</string>
|
||||
<string name="wifi_show_password">"パスワードを表示"</string>
|
||||
<string name="scan_wifi">"スキャン"</string>
|
||||
<string name="summary_not_in_range">"圏外"</string>
|
||||
<string name="summary_remembered">"これまでの設定"</string>
|
||||
<string name="summary_connection_failed">"接続できませんでした。選択すると再試行します。"</string>
|
||||
<string name="wifi_access_points">"Wi-Fiネットワーク"</string>
|
||||
<!-- no translation found for wifi_type_ssid (1326839657083292017) -->
|
||||
<skip />
|
||||
<string name="wifi_security">"セキュリティ"</string>
|
||||
<string name="wifi_save_config">"保存"</string>
|
||||
<string name="wifi_password_unchanged">"(変更なし)"</string>
|
||||
<!-- no translation found for wifi_add_other_network (5499063300755575893) -->
|
||||
<skip />
|
||||
<string name="wifi_notify_open_networks">"ネットワークの通知"</string>
|
||||
<string name="wifi_notify_open_networks_summary">"オープンネットワークが利用可能なときに通知する"</string>
|
||||
<string name="wifi_password_incorrect_error">"入力したネットワークパスワードは正しくありません。再入力してください。"</string>
|
||||
<string name="wifi_generic_connection_error">"ネットワーク接続に問題があります。もう一度試してください。"</string>
|
||||
<string name="wifi_menu_advanced">"詳細設定"</string>
|
||||
<string name="wifi_ip_settings_titlebar">"IP設定"</string>
|
||||
<string name="wifi_ip_settings_menu_save">"保存"</string>
|
||||
<string name="wifi_ip_settings_menu_cancel">"キャンセル"</string>
|
||||
<string name="wifi_ip_settings_invalid_ip">"正しいIPアドレスを入力してください。"</string>
|
||||
<string name="wifi_use_static_ip">"静的IPを使用"</string>
|
||||
<string name="wifi_ip_address">"IPアドレス"</string>
|
||||
<string name="wifi_dns1">"DNS 1"</string>
|
||||
<string name="wifi_dns2">"DNS 2"</string>
|
||||
<string name="wifi_gateway">"ゲートウェイ"</string>
|
||||
<string name="wifi_netmask">"ネットマスク"</string>
|
||||
<string name="wifi_context_menu_connect">"ネットワークに接続"</string>
|
||||
<string name="wifi_context_menu_forget">"ネットワークへの接続を解除"</string>
|
||||
<string name="wifi_context_menu_change_password">"パスワードを変更"</string>
|
||||
<string name="wifi_advanced_titlebar">"詳細設定"</string>
|
||||
<string name="wifi_setting_num_channels_title">"規制領域"</string>
|
||||
<string name="wifi_setting_num_channels_summary">"使用するチャンネルの番号を設定する"</string>
|
||||
<string name="wifi_setting_num_channels_error">"規制領域の設定で問題が発生しました。"</string>
|
||||
<string name="wifi_setting_num_channels_channel_phrase">"チャンネル数<xliff:g id="NUM_CHANNELS">%1$d</xliff:g>件"</string>
|
||||
<!-- no translation found for wifi_advanced_mac_address_title (6571335466330978393) -->
|
||||
<skip />
|
||||
<string name="fragment_status_scanning">"スキャン中..."</string>
|
||||
<string name="fragment_status_connecting">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g>に接続中..."</string>
|
||||
<string name="fragment_status_authenticating">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g>による認証中..."</string>
|
||||
<string name="fragment_status_obtaining_ip">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g>からIPアドレスを取得中..."</string>
|
||||
<string name="fragment_status_connected">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g>に接続しました"</string>
|
||||
<string name="fragment_status_disconnecting">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g>から切断中..."</string>
|
||||
<string name="fragment_status_disconnected">"切断"</string>
|
||||
<string name="fragment_status_failed">"失敗"</string>
|
||||
<string name="status_scanning">"スキャン中..."</string>
|
||||
<string name="status_connecting">"接続中..."</string>
|
||||
<string name="status_authenticating">"認証中..."</string>
|
||||
<string name="status_obtaining_ip">"アドレスを取得中..."</string>
|
||||
<string name="status_connected">"接続"</string>
|
||||
<string name="status_disconnecting">"切断中..."</string>
|
||||
<string name="status_disconnected">"切断"</string>
|
||||
<string name="status_failed">"失敗"</string>
|
||||
<string name="sound_and_display_settings">"音と表示"</string>
|
||||
<string name="sound_settings">"音の設定"</string>
|
||||
<string name="sound_and_display_settings_summary">"着信音、通知、画面の輝度を設定する"</string>
|
||||
<string name="silent_mode_title">"マナーモード"</string>
|
||||
<!-- no translation found for silent_mode_summary (9081534746589616108) -->
|
||||
<skip />
|
||||
<string name="ringtone_title">"着信音"</string>
|
||||
<string name="ringtone_summary">"デフォルトの着信音を設定"</string>
|
||||
<string name="ring_volume_title">"着信音の音量"</string>
|
||||
<!-- no translation found for ring_volume_summary (8370699933709381329) -->
|
||||
<skip />
|
||||
<string name="vibrate_title">"携帯電話を振動"</string>
|
||||
<string name="vibrate_summary">"着信時に携帯電話を振動"</string>
|
||||
<string name="notification_sound_title">"通知音"</string>
|
||||
<string name="notification_sound_summary">"デフォルトの通知音を設定する"</string>
|
||||
<!-- no translation found for incoming_call_volume_title (6144314834963494752) -->
|
||||
<skip />
|
||||
<!-- no translation found for notification_volume_title (3363351773121138717) -->
|
||||
<skip />
|
||||
<!-- no translation found for checkbox_notification_same_as_incoming_call (1073644356290338921) -->
|
||||
<skip />
|
||||
<string name="notification_sound_dialog_title">"通知音を選択"</string>
|
||||
<string name="media_volume_title">"メディアの音量"</string>
|
||||
<string name="media_volume_summary">"音楽と動画の音量を設定"</string>
|
||||
<string name="dtmf_tone_enable_title">"タッチの効果音"</string>
|
||||
<string name="dtmf_tone_enable_summary_on">"ダイヤルパッドの使用時に音を鳴らす"</string>
|
||||
<string name="dtmf_tone_enable_summary_off">"ダイヤルパッドの使用時に音を鳴らす"</string>
|
||||
<string name="sound_effects_enable_title">"選択の効果音"</string>
|
||||
<string name="sound_effects_enable_summary_on">"画面での選択時に音を鳴らす"</string>
|
||||
<string name="sound_effects_enable_summary_off">"画面での選択時に音を鳴らす"</string>
|
||||
<string name="sync_settings">"データの同期化"</string>
|
||||
<string name="sync_settings_summary">"同期するアプリケーションを選択"</string>
|
||||
<!-- no translation found for sync_settings_header_general_settings (1940413055002651212) -->
|
||||
<skip />
|
||||
<!-- no translation found for sync_settings_header_application_settings (7055646124074397344) -->
|
||||
<skip />
|
||||
<string name="sync_too_many_deletes">"削除の制限を超えました"</string>
|
||||
<string name="sync_automatically">"自動同期化"</string>
|
||||
<string name="sync_enabled">"自動的にデータを同期"</string>
|
||||
<string name="sync_disabled">"自動的にデータを同期"</string>
|
||||
<string name="sync_menu_sync_now">"今すぐ同期"</string>
|
||||
<string name="sync_menu_sync_cancel">"同期をキャンセル"</string>
|
||||
<string name="sync_gmail">"Gmail"</string>
|
||||
<string name="sync_calendar">"カレンダー"</string>
|
||||
<string name="sync_contacts">"連絡先"</string>
|
||||
<string name="sync_too_many_deletes_desc">"アカウント「<xliff:g id="ACCOUNT_NAME">%3$s</xliff:g>」で<xliff:g id="TYPE_OF_SYNC">%2$s</xliff:g>の<xliff:g id="NUMBER_OF_DELETED_ITEMS">%1$d</xliff:g>個の項目が削除されています。処理を選択してください。"</string>
|
||||
<string name="sync_really_delete">"項目を削除します。"</string>
|
||||
<string name="sync_undo_deletes">"削除を元に戻します。"</string>
|
||||
<string name="sync_do_nothing">"今は何もしません。"</string>
|
||||
<string name="sync_is_failing">"現在同期で問題が発生しています。しばらくお待ちください。"</string>
|
||||
<string name="sync_plug"><font fgcolor="#ffffffff">"Google Syncへようこそ"</font>" "\n"このサービスを使用すると、データを同期して、どこからでも連絡先や予定などにアクセスできます。"</string>
|
||||
<string name="display_settings">"表示設定"</string>
|
||||
<!-- no translation found for animations_title (1062189037402346023) -->
|
||||
<skip />
|
||||
<!-- no translation found for animations_summary_on (5690787466633824737) -->
|
||||
<skip />
|
||||
<!-- no translation found for animations_summary_off (8847573219383668092) -->
|
||||
<skip />
|
||||
<string name="brightness">"輝度"</string>
|
||||
<string name="screen_timeout">"画面のタイムアウト"</string>
|
||||
<string name="dim_screen">"画面を暗くする"</string>
|
||||
<string name="sim_lock_settings">"SIMカードのロック設定"</string>
|
||||
<string name="sim_lock_settings_category">"SIMカードのロックを設定"</string>
|
||||
<string name="sim_lock_settings_title">"SIMカードのロック"</string>
|
||||
<string name="sim_pin_toggle">"SIMカードをロック"</string>
|
||||
<string name="sim_lock_on">"携帯電話の使用にPINを要求"</string>
|
||||
<string name="sim_lock_off">"携帯電話の使用にPINを要求"</string>
|
||||
<!-- no translation found for sim_pin_change (6311414184279932368) -->
|
||||
<skip />
|
||||
<!-- no translation found for sim_enter_pin (6608715137008508432) -->
|
||||
<skip />
|
||||
<!-- no translation found for sim_enable_sim_lock (4517742794997166918) -->
|
||||
<skip />
|
||||
<!-- no translation found for sim_disable_sim_lock (7664729528754784824) -->
|
||||
<skip />
|
||||
<!-- no translation found for sim_enter_old (6074196344494634348) -->
|
||||
<skip />
|
||||
<!-- no translation found for sim_enter_new (8742727032729243562) -->
|
||||
<skip />
|
||||
<string name="sim_reenter_new">"新しいPINを再入力"</string>
|
||||
<!-- no translation found for sim_change_pin (7328607264898359112) -->
|
||||
<skip />
|
||||
<string name="sim_bad_pin">"PINが正しくありません。"</string>
|
||||
<string name="sim_pins_dont_match">"PINが一致しません。"</string>
|
||||
<string name="sim_change_failed">"PINを変更できません。"\n"PINが正しくない可能性があります。"</string>
|
||||
<string name="sim_change_succeeded">"SIM PINが変更されました"</string>
|
||||
<string name="sim_lock_failed">"SIMカードのロック状態を変更できません。"\n"PINが正しくない可能性があります。"</string>
|
||||
<string name="sim_enter_ok">"OK"</string>
|
||||
<string name="sim_enter_cancel">"キャンセル"</string>
|
||||
<string name="device_info_settings">"携帯電話のステータス"</string>
|
||||
<string name="system_update_settings_list_item_title">"システムアップデート"</string>
|
||||
<string name="system_update_settings_list_item_summary">"システムのアップデートをチェックする"</string>
|
||||
<string name="firmware_version">"ファームウェアのバージョン"</string>
|
||||
<string name="model_number">"モデル番号"</string>
|
||||
<string name="baseband_version">"ベースバンドのバージョン"</string>
|
||||
<string name="kernel_version">"カーネルのバージョン"</string>
|
||||
<string name="build_number">"ビルド番号"</string>
|
||||
<string name="device_info_not_available">"該当なし"</string>
|
||||
<string name="device_status_activity_title">"ステータス"</string>
|
||||
<string name="device_status">"ステータス"</string>
|
||||
<string name="device_status_summary">"IMEI、電話番号、信号など"</string>
|
||||
<string name="storage_settings_title">"SDカードと携帯電話のメモリ"</string>
|
||||
<string name="storage_settings_summary">"SDカードのマウントを解除し、利用可能な容量を表示する"</string>
|
||||
<string name="status_number">"電話番号"</string>
|
||||
<string name="status_network_type">"ネットワークタイプ"</string>
|
||||
<string name="status_data_state">"データアクセス"</string>
|
||||
<string name="status_service_state">"サービスの状態"</string>
|
||||
<string name="status_signal_strength">"信号の状態"</string>
|
||||
<string name="status_roaming">"ローミング"</string>
|
||||
<string name="status_operator">"ネットワーク"</string>
|
||||
<string name="status_wifi_mac_address">"Wi-Fi MACアドレス"</string>
|
||||
<string name="status_bt_address">"Bluetoothアドレス"</string>
|
||||
<string name="status_unavailable">"不明"</string>
|
||||
<string name="status_up_time">"稼働時間"</string>
|
||||
<string name="status_awake_time">"使用時間"</string>
|
||||
<string name="internal_memory">"携帯電話内部メモリ"</string>
|
||||
<string name="sd_memory">"SDカード"</string>
|
||||
<string name="memory_available">"空き容量"</string>
|
||||
<string name="memory_size">"合計容量"</string>
|
||||
<string name="sd_eject">"SDカードをマウント解除/取り出す"</string>
|
||||
<string name="sd_unavailable">"使用不可"</string>
|
||||
<string name="read_only">"(読み取り専用)"</string>
|
||||
<string name="battery_status_title">"バッテリの状態"</string>
|
||||
<string name="battery_level_title">"バッテリレベル:"</string>
|
||||
<string name="apn_settings">"APN"</string>
|
||||
<string name="apn_edit">"アクセスポイントの編集"</string>
|
||||
<string name="apn_not_set">"<未設定>"</string>
|
||||
<string name="apn_name">"名前"</string>
|
||||
<string name="apn_apn">"APN"</string>
|
||||
<string name="apn_http_proxy">"プロキシ"</string>
|
||||
<string name="apn_http_port">"ポート"</string>
|
||||
<string name="apn_user">"ユーザー名"</string>
|
||||
<string name="apn_password">"パスワード"</string>
|
||||
<string name="apn_server">"サーバー"</string>
|
||||
<string name="apn_mmsc">"MMSC"</string>
|
||||
<string name="apn_mms_proxy">"MMSプロキシ"</string>
|
||||
<string name="apn_mms_port">"MMSポート"</string>
|
||||
<string name="apn_mcc">"MCC"</string>
|
||||
<string name="apn_mnc">"MNC"</string>
|
||||
<string name="apn_type">"APNタイプ"</string>
|
||||
<string name="menu_delete">"APNを削除"</string>
|
||||
<string name="menu_new">"新しいAPN"</string>
|
||||
<string name="menu_save">"保存"</string>
|
||||
<string name="menu_cancel">"破棄"</string>
|
||||
<string name="error_title">"注意"</string>
|
||||
<string name="error_name_empty">"[名前]フィールドは空白にできません。"</string>
|
||||
<string name="error_apn_empty">"APNを空にできません。"</string>
|
||||
<string name="error_mcc_not3">"MCCのフィールドには3桁で指定してください。"</string>
|
||||
<string name="error_mnc_not23">"MNCのフィールドには2桁か3桁で指定してください。"</string>
|
||||
<string name="master_clear_title">"出荷時データにリセット"</string>
|
||||
<string name="master_clear_summary">"携帯電話内のすべてのデータを消去"</string>
|
||||
<string name="master_clear_desc">"この操作は携帯電話を出荷時の初期状態にリセットし、データとダウンロードしたアプリケーションをすべて消去します。"</string>
|
||||
<string name="master_clear_button_text">"携帯電話をリセット"</string>
|
||||
<string name="master_clear_final_desc">"データやアプリケーションをすべて消去して携帯電話をリセットしますか?この操作は元に戻せません。"</string>
|
||||
<string name="master_clear_final_button_text">"すべて消去"</string>
|
||||
<!-- no translation found for master_clear_gesture_prompt (1428645764883536750) -->
|
||||
<skip />
|
||||
<string name="master_clear_gesture_explanation">"携帯電話をリセットするには、ロック解除パターンを入力する必要があります。"</string>
|
||||
<string name="master_clear_failed">"System Clearサービスが利用できないため、リセットされませんでした。"</string>
|
||||
<string name="call_settings_title">"通話設定"</string>
|
||||
<string name="call_settings_summary">"ボイスメール、電話転送、待機中の着信、発信者番号を設定する"</string>
|
||||
<string name="network_settings_title">"モバイルネットワーク"</string>
|
||||
<string name="network_settings_summary">"ローミング、ネットワーク、APNのオプションを設定する"</string>
|
||||
<string name="location_title">"現在地の情報源"</string>
|
||||
<string name="location_network_based">"ワイヤレスネットワークを使用"</string>
|
||||
<string name="location_networks_disabled">"ワイヤレスネットワークを使用するアプリケーション (地図など) で位置を表示する"</string>
|
||||
<string name="location_neighborhood_level">"Wi-Fi/モバイルネットワークで位置を特定"</string>
|
||||
<string name="location_gps">"GPS衛星を有効にする"</string>
|
||||
<string name="location_street_level">"番地レベルまで正確に位置を特定 (バッテリの節約にはオフ)"</string>
|
||||
<string name="location_gps_disabled">"番地レベルの位置を特定 (バッテリ消費が増加、航空写真を表示)"</string>
|
||||
<string name="about_settings">"この携帯電話について"</string>
|
||||
<string name="about_settings_summary">"法的情報、携帯電話のステータス、ソフトウェアのバージョンを表示する"</string>
|
||||
<string name="legal_information">"法的情報"</string>
|
||||
<string name="contributors_title">"コラボレーター"</string>
|
||||
<string name="copyright_title">"著作権"</string>
|
||||
<string name="license_title">"ライセンス"</string>
|
||||
<string name="terms_title">"利用規約"</string>
|
||||
<string name="settings_license_activity_title">"オープンソースライセンス"</string>
|
||||
<string name="settings_license_activity_unavailable">"ライセンスの読み込み中に問題が発生しました。"</string>
|
||||
<string name="settings_license_activity_loading">"読み込み中..."</string>
|
||||
<string name="lock_settings_title">"画面のロック解除パターン"</string>
|
||||
<string name="lockpattern_change_lock_pattern_label">"ロック解除パターンを変更"</string>
|
||||
<!-- no translation found for lockpattern_need_to_unlock (757935356911054465) -->
|
||||
<skip />
|
||||
<string name="lockpattern_need_to_unlock_wrong">"もう一度試してください:"</string>
|
||||
<!-- no translation found for lockpattern_recording_intro_header (308287052221942814) -->
|
||||
<skip />
|
||||
<string name="lockpattern_recording_intro_footer">"ヘルプを表示するにはMenuキーを押します。"</string>
|
||||
<string name="lockpattern_recording_inprogress">"完了時に指を離します。"</string>
|
||||
<string name="lockpattern_recording_incorrect_too_short">"少なくとも<xliff:g id="NUMBER">%d</xliff:g>つの点を結んで、もう一度指定してください。"</string>
|
||||
<string name="lockpattern_pattern_entered_header">"パターンが記録されました。"</string>
|
||||
<string name="lockpattern_need_to_confirm">"確認のためもう一度パターンを入力します"</string>
|
||||
<string name="lockpattern_pattern_confirmed_header">"新しいロック解除パターン:"</string>
|
||||
<string name="lockpattern_confirm_button_text">"確認"</string>
|
||||
<string name="lockpattern_restart_button_text">"再入力"</string>
|
||||
<string name="lockpattern_retry_button_text">"再指定"</string>
|
||||
<string name="lockpattern_continue_button_text">"次へ"</string>
|
||||
<string name="lockpattern_settings_title">"ロック解除パターン"</string>
|
||||
<string name="lockpattern_settings_enable_title">"パターンの指定が必要"</string>
|
||||
<string name="lockpattern_settings_enable_summary">"画面のロックを解除するにはパターンを入力してください"</string>
|
||||
<string name="lockpattern_settings_enable_visible_pattern_title">"指定時にパターンを表示"</string>
|
||||
<!-- no translation found for lockpattern_settings_enable_tactile_feedback_title (972174133075372341) -->
|
||||
<skip />
|
||||
<string name="lockpattern_settings_choose_lock_pattern">"ロック解除パターンを設定"</string>
|
||||
<string name="lockpattern_settings_change_lock_pattern">"ロック解除パターンを変更"</string>
|
||||
<!-- no translation found for lockpattern_settings_help_how_to_record (2614673439060830433) -->
|
||||
<skip />
|
||||
<string name="lockpattern_too_many_failed_confirmation_attempts_header">"誤った回数が多すぎます。"</string>
|
||||
<string name="lockpattern_too_many_failed_confirmation_attempts_footer">"<xliff:g id="NUMBER">%d</xliff:g>秒後にもう一度試してください。"</string>
|
||||
<string name="skip_button_label">"キャンセル"</string>
|
||||
<string name="next_button_label">"次へ"</string>
|
||||
<string name="lock_title">"携帯電話の保護"</string>
|
||||
<string name="lock_intro_message"><font size="17">"独自の画面のロック解除パターンを作成して、携帯電話の不正使用を防ぎます。"\n<font height="17">\n</font><b>"1"</b>" 次の画面で、パターン作成の例を参考にしてください。"\n<font height="17">\n</font><b>"2"</b>" 独自のロック解除パターンを決めてから、そのパターンを入力します。さまざまなパターンを指定できますが、少なくとも4つの点を結んでください。"\n<font height="17">\n</font><b>"3"</b>" 確認のためもう一度そのパターンを入力します。"\n<font height="17">\n</font><b>"準備ができたら、[次へ]を選択します"</b>"。"\n<font height="3">\n</font>"携帯電話を保護しない場合は、[キャンセル]を選択します。"</font></string>
|
||||
<string name="lock_example_title">"パターン例"</string>
|
||||
<string name="lock_example_message">"少なくとも4つの点を結びます。"\n" "\n"独自のパターンを考えてから、[次へ]を選択します。"</string>
|
||||
<string name="manageapplications_settings_title">"アプリケーションを管理"</string>
|
||||
<string name="applications_settings">"アプリケーション"</string>
|
||||
<string name="applications_settings_summary">"アプリケーションを管理し、クイック起動のショートカットを設定する"</string>
|
||||
<string name="applications_settings_header">"アプリケーション設定"</string>
|
||||
<string name="install_applications">"不明な提供元"</string>
|
||||
<string name="install_unknown_applications">"Android Market以外のアプリケーションのインストールを許可する"</string>
|
||||
<string name="install_all_warning">"提供元が不明のアプリケーションから、携帯電話や個人データが攻撃を受ける可能性が高くなります。このようなアプリケーションの使用により生じた携帯電話への損害やデータの損失については、お客様がすべての責任を負うことに同意するものとします。"</string>
|
||||
<string name="manage_applications_title">"アプリケーションを管理"</string>
|
||||
<string name="application_info_label">"アプリケーション情報"</string>
|
||||
<string name="storage_label">"メモリ"</string>
|
||||
<string name="auto_launch_label">"デフォルトで起動"</string>
|
||||
<string name="permissions_label">"許可"</string>
|
||||
<string name="total_size_label">"合計"</string>
|
||||
<string name="application_size_label">"アプリケーション"</string>
|
||||
<string name="data_size_label">"データ"</string>
|
||||
<string name="uninstall_text">"アンインストール"</string>
|
||||
<string name="clear_user_data_text">"データを消去"</string>
|
||||
<string name="auto_launch_enable_text">"操作を行うデフォルトのアプリケーションとして起動するように選択しています。"</string>
|
||||
<string name="auto_launch_disable_text">"デフォルトは設定されていません。"</string>
|
||||
<string name="clear_activities">"デフォルトをクリア"</string>
|
||||
<string name="unknown">"不明"</string>
|
||||
<string name="sort_order_alpha">"名前で並べ替え"</string>
|
||||
<string name="sort_order_size">"サイズ順に並べ替える (降順)"</string>
|
||||
<string name="manage_space_text">"容量を管理"</string>
|
||||
<!-- no translation found for filter_apps_all (5362458533526576243) -->
|
||||
<skip />
|
||||
<!-- no translation found for filter_apps_third_party (6478735462006756182) -->
|
||||
<skip />
|
||||
<!-- no translation found for filter_apps_running (4508709081284629440) -->
|
||||
<skip />
|
||||
<!-- no translation found for loading (3200408047793887917) -->
|
||||
<skip />
|
||||
<string name="recompute_size">"サイズを再計算中..."</string>
|
||||
<string name="clear_data_dlg_title">"削除"</string>
|
||||
<string name="clear_data_dlg_text">"このアプリケーションに保存したすべての情報が完全に削除されます。"</string>
|
||||
<string name="dlg_ok">"OK"</string>
|
||||
<string name="dlg_cancel">"キャンセル"</string>
|
||||
<string name="app_not_found_dlg_title">"アプリケーションが見つかりません"</string>
|
||||
<string name="app_not_found_dlg_text">"インストール済みアプリケーションのリストに、このアプリケーションはありません。"</string>
|
||||
<string name="clear_data_failed">"アプリケーションデータを消去できませんでした。"</string>
|
||||
<!-- no translation found for security_settings_desc (3116027624526915561) -->
|
||||
<skip />
|
||||
<!-- no translation found for computing_size (8865983009275200301) -->
|
||||
<skip />
|
||||
<!-- no translation found for invalid_size_value (1901940003700269523) -->
|
||||
<skip />
|
||||
<!-- no translation found for empty_list_msg (723420725041278150) -->
|
||||
<skip />
|
||||
<string name="language_settings">"ロケールとテキスト"</string>
|
||||
<!-- no translation found for language_settings_summary (595647729475399987) -->
|
||||
<skip />
|
||||
<string name="language_category">"ロケール設定"</string>
|
||||
<string name="text_category">"テキスト設定"</string>
|
||||
<string name="phone_language">"ロケールを選択"</string>
|
||||
<string name="auto_replace">"自動修正"</string>
|
||||
<string name="auto_replace_summary">"誤字脱字を修正する"</string>
|
||||
<string name="auto_caps">"大文字の自動入力"</string>
|
||||
<string name="auto_caps_summary">"文の最初の文字を大文字にする"</string>
|
||||
<string name="auto_punctuate">"句読点を自動入力"</string>
|
||||
<string name="auto_punctuate_summary">"Spaceキーを2回押して「。」を挿入"</string>
|
||||
<string name="show_password">"パスワードを表示"</string>
|
||||
<string name="show_password_summary">"入力中のパスワードを表示"</string>
|
||||
<string name="testing">"テスト中"</string>
|
||||
<string name="testing_phone_info">"携帯電話情報"</string>
|
||||
<string name="testing_battery_info">"バッテリ情報"</string>
|
||||
<string name="quick_launch_title">"クイック起動"</string>
|
||||
<string name="quick_launch_summary">"アプリケーション起動のキーボードショートカットを設定する"</string>
|
||||
<string name="quick_launch_assign_application">"アプリケーションを割り当て"</string>
|
||||
<string name="quick_launch_no_shortcut">"ショートカットなし"</string>
|
||||
<string name="quick_launch_shortcut">"Search+<xliff:g id="SHORTCUT_LETTER">%1$s</xliff:g>"</string>
|
||||
<string name="quick_launch_clear_dialog_title">"クリア"</string>
|
||||
<string name="quick_launch_clear_dialog_message">"<xliff:g id="SHORTCUT_LETTER">%1$s</xliff:g> (<xliff:g id="APPLICATION_NAME">%2$s</xliff:g>) のショートカットをクリアします。"</string>
|
||||
<string name="quick_launch_clear_ok_button">"OK"</string>
|
||||
<string name="quick_launch_clear_cancel_button">"キャンセル"</string>
|
||||
<string name="quick_launch_display_mode_applications">"アプリケーション"</string>
|
||||
<string name="quick_launch_display_mode_shortcuts">"ショートカット"</string>
|
||||
<!-- no translation found for input_methods_settings_title (6800066636850553887) -->
|
||||
<skip />
|
||||
<!-- no translation found for input_methods_settings_summary (7571173442946675205) -->
|
||||
<skip />
|
||||
<string name="development_settings_title">"開発"</string>
|
||||
<!-- no translation found for development_settings_summary (2151320488701538355) -->
|
||||
<skip />
|
||||
<string name="enable_adb">"USBデバッグ"</string>
|
||||
<string name="enable_adb_summary">"USBの接続時のデバッグモード"</string>
|
||||
<string name="keep_screen_on">"スリープを無効にする"</string>
|
||||
<string name="keep_screen_on_summary">"充電中に画面をスリープにしない"</string>
|
||||
<!-- no translation found for allow_mock_location (2787962564578664888) -->
|
||||
<skip />
|
||||
<!-- no translation found for allow_mock_location_summary (317615105156345626) -->
|
||||
<skip />
|
||||
</resources>
|
@@ -1,700 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
|
||||
<string name="about_settings">關於電話</string>
|
||||
<string name="about_settings_summary">檢視合法資訊、電話狀態、軟體版本</string>
|
||||
<string name="activity_picker_label">選取活動</string>
|
||||
<string name="airplane_mode">飛安模式</string>
|
||||
<string name="airplane_mode_summary">選取以便停用所有無線連線</string>
|
||||
<string name="airplane_mode_turning_off">正在啟用無線連線\u2026</string>
|
||||
<string name="airplane_mode_turning_on">正在停用無線連線\u2026</string>
|
||||
<string name="android_id_label">Android ID</string>
|
||||
<string name="apn_apn">APN</string>
|
||||
<string name="apn_edit">編輯存取點</string>
|
||||
<string name="apn_http_port">連接埠</string>
|
||||
<string name="apn_http_proxy">Proxy</string>
|
||||
<string name="apn_label">APN</string>
|
||||
<string name="apn_mcc">MCC</string>
|
||||
<string name="apn_mms_port">多媒體簡訊連接埠</string>
|
||||
<string name="apn_mms_proxy">多媒體簡訊 Proxy</string>
|
||||
<string name="apn_mmsc">MMSC</string>
|
||||
<string name="apn_mnc">MNC</string>
|
||||
<string name="apn_name">名稱</string>
|
||||
<string name="apn_not_set"><尚未設定></string>
|
||||
<string name="apn_password">密碼</string>
|
||||
<string name="apn_server">伺服器</string>
|
||||
<string name="apn_settings">APN</string>
|
||||
<string name="apn_type">APN 類型</string>
|
||||
<string name="apn_user">使用者名稱</string>
|
||||
<string name="app_launcher_newView_text">新增 AppLauncher</string>
|
||||
<string name="app_not_found_dlg_text"> 已安裝之應用程式的清單中找
|
||||
不到此應用程式。</string>
|
||||
<string name="app_not_found_dlg_title">找不到應用程式</string>
|
||||
<string name="application_info_label">應用程式資訊</string>
|
||||
<string name="application_size_label">應用程式</string>
|
||||
<string name="applications_settings">應用程式</string>
|
||||
<string name="applications_settings_header">應用程式設定</string>
|
||||
<string name="applications_settings_summary">管理應用程式,設定快速啟動捷徑</string>
|
||||
<string name="auto_caps">自動大寫</string>
|
||||
<string name="auto_caps_summary">句子首字母大寫</string>
|
||||
<string name="auto_launch_disable_text">無預設設定。</string>
|
||||
<string name="auto_launch_enable_text">根據預設,您已經選取啟動此應用程式以便執行某些動作。</string>
|
||||
<string name="auto_launch_label">預設啟動</string>
|
||||
<string name="auto_punctuate">自動標點符號</string>
|
||||
<string name="auto_punctuate_summary">按下 Space 鍵兩次即可插入 \u0022。\u0022</string>
|
||||
<string name="auto_replace">自動取代</string>
|
||||
<string name="auto_replace_summary">修正輸入錯誤的字彙</string>
|
||||
<string name="autorotate">自動旋轉</string>
|
||||
<string name="autorotate_summary_off">變更畫面方向不會旋轉應用程式</string>
|
||||
<string name="autorotate_summary_on">變更畫面方向旋轉應用程式</string>
|
||||
<string name="b_text">B</string>
|
||||
<string name="band_mode_failed">失敗</string>
|
||||
<string name="band_mode_loading">正在載入波段清單\u2026</string>
|
||||
<string name="band_mode_set">設定</string>
|
||||
<string name="band_mode_succeeded">成功</string>
|
||||
<string name="band_mode_title">設定 GSM/UMTS 波段</string>
|
||||
<string name="baseband_version">Baseband 版本</string>
|
||||
<string name="basic_settings_title">電話基本資訊</string>
|
||||
<string name="battery_info_awake_battery">使用電池時的喚醒時間:</string>
|
||||
<string name="battery_info_awake_plugged">充電時的喚醒時間:</string>
|
||||
<string name="battery_info_health_dead">故障</string>
|
||||
<string name="battery_info_health_good">良好</string>
|
||||
<string name="battery_info_health_label">電池壽命:</string>
|
||||
<string name="battery_info_health_over_voltage">電壓超載</string>
|
||||
<string name="battery_info_health_overheat">過熱</string>
|
||||
<string name="battery_info_health_unknown">無法辨識</string>
|
||||
<string name="battery_info_health_unspecified_failure">無法辨識的錯誤</string>
|
||||
<string name="battery_info_label">電池資訊</string>
|
||||
<string name="battery_info_level_label">電池電量:</string>
|
||||
<string name="battery_info_scale_label">電池刻度:</string>
|
||||
<string name="battery_info_screen_on">畫面顯示時間:</string>
|
||||
<string name="battery_info_status_charging">正在充電</string>
|
||||
<string name="battery_info_status_charging_ac">(AC)</string>
|
||||
<string name="battery_info_status_charging_usb">(USB)</string>
|
||||
<string name="battery_info_status_discharging">正在放電</string>
|
||||
<string name="battery_info_status_full">充滿</string>
|
||||
<string name="battery_info_status_label">電池狀態:</string>
|
||||
<string name="battery_info_status_not_charging">尚未充電</string>
|
||||
<string name="battery_info_status_unknown">無法辨識</string>
|
||||
<string name="battery_info_technology_label">電池技術:</string>
|
||||
<string name="battery_info_temperature_label">電池溫度:</string>
|
||||
<string name="battery_info_temperature_units">\u00B0 C</string>
|
||||
<string name="battery_info_uptime">開機後使用時間已經超過:</string>
|
||||
<string name="battery_info_voltage_label">電池電壓:</string>
|
||||
<string name="battery_info_voltage_units">mV</string>
|
||||
<string name="battery_level_title">電池電量</string>
|
||||
<string name="battery_status_title">電池狀態</string>
|
||||
<string name="bluetooth">藍牙</string>
|
||||
<string name="bluetooth_clear_list">清除裝置清單</string>
|
||||
<string name="bluetooth_connect">連線</string>
|
||||
<string name="bluetooth_connectable">僅可連線</string>
|
||||
<string name="bluetooth_connected">已連線</string>
|
||||
<string name="bluetooth_connecting">正在連線\u2026</string>
|
||||
<string name="bluetooth_device">免持聽筒/耳機</string>
|
||||
<string name="bluetooth_device_info">藍牙裝置資訊</string>
|
||||
<string name="bluetooth_device_info_alias">裝置別名</string>
|
||||
<string name="bluetooth_device_info_delete">移除此裝置</string>
|
||||
<string name="bluetooth_device_info_no_alias">在此輸入類型別名\u2026</string>
|
||||
<string name="bluetooth_device_info_sdp">列出支援的服務</string>
|
||||
<string name="bluetooth_device_name">裝置名稱</string>
|
||||
<string name="bluetooth_devices">藍牙裝置</string>
|
||||
<string name="bluetooth_disabled">選取開啟藍牙</string>
|
||||
<string name="bluetooth_disconnect">中斷連線</string>
|
||||
<string name="bluetooth_disconnect_blank">將會與 <xliff:g id="device_name">%1$s</xliff:g> 中斷連線。</string>
|
||||
<string name="bluetooth_discoverability_panel_title">將我設成\u2026</string>
|
||||
<string name="bluetooth_discoverable">可搜尋 %1$s 秒</string>
|
||||
<string name="bluetooth_enable_text">清空按鍵\u2026</string>
|
||||
<string name="bluetooth_enabled">選取開啟藍牙</string>
|
||||
<string name="bluetooth_enabling">正在開啟藍牙\u2026</string>
|
||||
<string name="bluetooth_enter_pin_msg">輸入 PIN 碼\u0020</string>
|
||||
<string name="bluetooth_failed_to_enable">無法開啟藍牙</string>
|
||||
<string name="bluetooth_is_discoverable">可搜尋 %1$s 秒\u2026</string>
|
||||
<string name="bluetooth_name_not_set">尚未設定名稱,使用帳號名稱代替</string>
|
||||
<string name="bluetooth_neither">無法搜尋及連線</string>
|
||||
<string name="bluetooth_new_data">輸入新資料</string>
|
||||
<string name="bluetooth_new_data_cancel">取消</string>
|
||||
<string name="bluetooth_new_data_confirm">確定</string>
|
||||
<string name="bluetooth_not_connected">與此裝置配對</string>
|
||||
<string name="bluetooth_not_discoverable">選取讓裝置設成可搜尋</string>
|
||||
<string name="bluetooth_notif_message">選取配對目標\u0020</string>
|
||||
<string name="bluetooth_notif_ticker">藍牙配對要求</string>
|
||||
<string name="bluetooth_notif_title">藍牙配對要求</string>
|
||||
<string name="bluetooth_pair">配對</string>
|
||||
<string name="bluetooth_paired">已經配對</string>
|
||||
<string name="bluetooth_paired_not_nearby">已經配對</string>
|
||||
<string name="bluetooth_pairing">正在配對\u2026</string>
|
||||
<string name="bluetooth_pairing_msg">正在配對\u2026</string>
|
||||
<string name="bluetooth_pin_entry">輸入藍牙 PIN 碼</string>
|
||||
<string name="bluetooth_quick_toggle_summary">選取開啟藍牙</string>
|
||||
<string name="bluetooth_quick_toggle_title">藍牙</string>
|
||||
<string name="bluetooth_scan_for_devices">掃描裝置</string>
|
||||
<string name="bluetooth_scan_for_new_devices">正在掃描新裝置\u2026</string>
|
||||
<string name="bluetooth_scan_text">清空按鍵\u2026</string>
|
||||
<string name="bluetooth_settings">藍牙設定</string>
|
||||
<string name="bluetooth_settings_summary">管理連線,及設定裝置名稱與可搜尋性</string>
|
||||
<string name="bluetooth_settings_text">清空按鍵\u2026</string>
|
||||
<string name="bluetooth_settings_title">藍牙設定</string>
|
||||
<string name="bluetooth_starting">正在啟動藍牙\u2026</string>
|
||||
<string name="bluetooth_stopping">正在停止藍牙\u2026</string>
|
||||
<string name="bluetooth_unknown">無法辨識</string>
|
||||
<string name="bluetooth_unpair">取消配對</string>
|
||||
<string name="bluetooth_visibility">可搜尋的</string>
|
||||
<string name="bootloader_version">Boot Loader 版本</string>
|
||||
<string name="brightness">亮度</string>
|
||||
<string name="build_date_label">建置日期</string>
|
||||
<string name="build_description_label">建置說明</string>
|
||||
<string name="build_host_label">建置主機</string>
|
||||
<string name="build_id_label">建置 ID</string>
|
||||
<string name="build_number">建置號碼</string>
|
||||
<string name="build_type_label">建置類型</string>
|
||||
<string name="build_user_label">建置使用者</string>
|
||||
<string name="call_settings_summary">設定語音信箱、來電轉接、來電插撥、本機號碼</string>
|
||||
<string name="call_settings_title">通話設定</string>
|
||||
<string name="cancel">取消</string>
|
||||
<string name="checkin_button_label">檢查升級</string>
|
||||
<string name="checkin_download_failed">失敗</string>
|
||||
<string name="checkin_download_label">下載狀態</string>
|
||||
<string name="checkin_download_ongoing">正在下載</string>
|
||||
<string name="checkin_download_pending">等待</string>
|
||||
<string name="checkin_download_succeeded">已完成</string>
|
||||
<string name="checkin_download_suspended">已擱置</string>
|
||||
<string name="checkin_download_unknown">無法辨識的狀態</string>
|
||||
<string name="checkin_failures_label">自上次成功後發生失敗</string>
|
||||
<string name="checkin_last_time_label">最後一次成功檢查</string>
|
||||
<string name="checkin_started_message">已經開始檢查\u2026</string>
|
||||
<string name="checkin_status_label">檢查狀態</string>
|
||||
<string name="checkin_time_never">(永不)</string>
|
||||
<string name="checkin_upgrade_label">正在等待升級</string>
|
||||
<string name="choose_timezone">選取時區</string>
|
||||
<string name="choose_timezone_region">選取地區</string>
|
||||
<string name="clear_activities">清除預設值</string>
|
||||
<string name="clear_data_dlg_text">在此應用程式中已經儲存的所有資訊將會被永久刪除。</string>
|
||||
<string name="clear_data_dlg_title">刪除</string>
|
||||
<string name="clear_data_failed">無法清除應用程式資料。</string>
|
||||
<string name="clear_user_data_text">清除資料</string>
|
||||
<string name="computing_size">正在計算應用程式大小\u2026</string>
|
||||
<string name="connect">連線</string>
|
||||
<string name="connect_to_blank">連線到 <xliff:g id="network_name">%1$s</xliff:g></string>
|
||||
<string name="contributors_title">代理商</string>
|
||||
<string name="copyright_title">Copyright</string>
|
||||
<string name="data_settings">資料設定</string>
|
||||
<string name="data_settings_summary">SD 卡與電話儲存空間、資料同步</string>
|
||||
<string name="data_settings_title">資料</string>
|
||||
<string name="data_size_label">資料</string>
|
||||
<string name="date_and_time">日期與時間設定</string>
|
||||
<string name="date_and_time_settings_summary">設定日期、時間、時區與格式</string>
|
||||
<string name="date_and_time_settings_title">日期與時間</string>
|
||||
<string name="date_time_24hour">使用 24 小時格式</string>
|
||||
<string name="date_time_auto">自動</string>
|
||||
<string name="date_time_auto_summaryOff">使用網路提供的值</string>
|
||||
<string name="date_time_auto_summaryOn">使用網路提供的值</string>
|
||||
<string name="date_time_changeDate_text">變更日期</string>
|
||||
<string name="date_time_changeTime_text">變更時間</string>
|
||||
<string name="date_time_dateDisplay_text">1997 年 11 月 3 日</string>
|
||||
<string name="date_time_date_format">選取日期格式</string>
|
||||
<string name="date_time_set_date">設定日期</string>
|
||||
<string name="date_time_set_time">設定時間</string>
|
||||
<string name="date_time_set_timezone">設定時區</string>
|
||||
<string name="date_time_setzone_text">變更時區</string>
|
||||
<string name="date_time_timeDisplay_text">11:45 AM</string>
|
||||
<string name="date_time_timezone_label">時區:</string>
|
||||
<string name="debug_intent_sender_label">Debug intent sender</string>
|
||||
<string name="default_date_format">yyyy/MM/dd</string>
|
||||
<string name="default_keyboard_device_label">預設鍵盤裝置</string>
|
||||
<string name="development_settings_summary">應用程式開發設定</string>
|
||||
<string name="development_settings_title">開發</string>
|
||||
<string name="device_info_asleeptime">睡眠時間</string>
|
||||
<string name="device_info_awaketime">喚醒時間</string>
|
||||
<string name="device_info_default">無法辨識</string>
|
||||
<string name="device_info_label">裝置資訊</string>
|
||||
<string name="device_info_not_available">無法使用</string>
|
||||
<string name="device_info_settings">電話狀態</string>
|
||||
<string name="device_info_uptime">正常運作時間</string>
|
||||
<string name="device_status">狀態</string>
|
||||
<string name="device_status_summary">IMEI、電話號碼、訊號等</string>
|
||||
<string name="dim_screen">畫面變暗</string>
|
||||
<string name="disconnect_ums">與 USB 高容量儲存裝置中斷連線</string>
|
||||
<string name="display_font_size_label">字型大小:</string>
|
||||
<string name="display_label">顯示</string>
|
||||
<string name="display_preview_label">預覽:</string>
|
||||
<string name="display_settings">顯示設定</string>
|
||||
<string name="dlg_cancel">取消</string>
|
||||
<string name="dlg_ok">確定</string>
|
||||
<string name="done">確定</string>
|
||||
<string name="dtmf_tone_enable_summary_off">使用撥號鍵台時播放撥號音</string>
|
||||
<string name="dtmf_tone_enable_summary_on">使用撥號鍵台時播放撥號音</string>
|
||||
<string name="dtmf_tone_enable_title">可聽見的觸控撥號音</string>
|
||||
<string name="enable_adb">USB 偵錯</string>
|
||||
<string name="enable_adb_summary">連接 USB 時使用偵錯模式</string>
|
||||
<string name="error_apn_empty">APN 不可以空白。</string>
|
||||
<string name="error_connecting">無法連線到網路</string>
|
||||
<string name="error_mcc_not3">MCC 欄位必須是 3 個數字。</string>
|
||||
<string name="error_mnc_not23">MNC 欄位必須是 2 或 3 個數字。</string>
|
||||
<string name="error_name_empty">名稱欄位不可以空白。</string>
|
||||
<string name="error_saving">無法儲存網路</string>
|
||||
<string name="error_scanning">無法掃描網路</string>
|
||||
<string name="error_starting">無法啟動 Wi-Fi</string>
|
||||
<string name="error_stopping">無法停止 Wi-Fi</string>
|
||||
<string name="error_title">注意</string>
|
||||
<string name="failed_to_connect">無法連線到 <xliff:g id="device_name">%1$s</xliff:g></string>
|
||||
<string name="failed_to_pair">無法與 <xliff:g id="device_name">%1$s</xliff:g> 配對</string>
|
||||
<string name="favorites_label">我的最愛</string>
|
||||
<string name="firmware_version">韌體版本</string>
|
||||
<string name="font_size_preview_text">Servez à ce monsieur une bière et des kiwis.</string>
|
||||
<string name="font_size_save">確定</string>
|
||||
<string name="forget_network">忘記</string>
|
||||
<string name="fragment_status_authenticating">驗證 <xliff:g id="network_name">%1$s</xliff:g>\u2026</string>
|
||||
<string name="fragment_status_connected">已連線到 <xliff:g id="network_name">%1$s</xliff:g></string>
|
||||
<string name="fragment_status_connecting">正在連線到 <xliff:g id="network_name">%1$s</xliff:g>\u2026</string>
|
||||
<string name="fragment_status_disconnected">已中斷連線</string>
|
||||
<string name="fragment_status_disconnecting">正在與 <xliff:g id="network_name">%1$s</xliff:g> 中斷連線\u2026</string>
|
||||
<string name="fragment_status_failed">失敗</string>
|
||||
<string name="fragment_status_obtaining_ip">正在從 <xliff:g id="network_name">%1$s</xliff:g> 取得 IP 位址\u2026</string>
|
||||
<string name="fragment_status_scanning">正在掃描\u2026</string>
|
||||
<string name="gsm_version_baseband_label">Baseband 版本</string>
|
||||
<string name="gsm_version_ril_impl_label">RIL Impl 版本</string>
|
||||
<string name="install_all_warning">您的電話及個人資料極為容易遭受無法辨識之來源的應用程式
|
||||
攻擊。您在此同意,任何
|
||||
因為使用
|
||||
這些應用程式而可能導致的電話損壞或資料遺失皆完全由您自行負責。</string>
|
||||
<string name="install_applications">無法辨識的來源</string>
|
||||
<string name="install_unknown_applications">允許安裝非 Market 的應用程式</string>
|
||||
<string name="intent_sender_account_label">帳號: </string>
|
||||
<string name="intent_sender_action_label">動作:</string>
|
||||
<string name="intent_sender_data_label">資料:</string>
|
||||
<string name="intent_sender_resource_label">資源: </string>
|
||||
<string name="intent_sender_sendbroadcast_text">傳送廣播</string>
|
||||
<string name="intent_sender_startactivity_text">開始活動</string>
|
||||
<string name="internal_memory">電話內建儲存空間</string>
|
||||
<string name="ip_address">IP 位址</string>
|
||||
<string name="kb_text">KB</string>
|
||||
<string name="keep_screen_on">保持喚醒狀態</string>
|
||||
<string name="keep_screen_on_summary">充電時畫面將不會進入睡眠模式</string>
|
||||
<string name="kernel_version">Kernel 版本</string>
|
||||
<string name="kernel_version_label">Linux Kernel 版本</string>
|
||||
<string name="keyguard_label">鍵盤鎖</string>
|
||||
<string name="keyguard_password_button_text">確定</string>
|
||||
<string name="keyguard_password_confirm_new_label">確認新密碼:</string>
|
||||
<string name="keyguard_password_mismatch_error_text">兩組密碼不相符。請再次輸入。</string>
|
||||
<string name="keyguard_password_new_label">新密碼:</string>
|
||||
<string name="keyguard_password_old_label">舊密碼:</string>
|
||||
<string name="keyguard_password_old_password_error_text">輸入的舊密碼不正確。請再試一次。</string>
|
||||
<string name="keyguard_pin_mod_text">變更 PIN 碼</string>
|
||||
<string name="keyguard_pw_mod_text">選取鎖定模式</string>
|
||||
<string name="keyguard_sim_pin_label">SIM 卡 PIN 碼</string>
|
||||
<string name="language_category">語言設定</string>
|
||||
<string name="language_picker_title">地區設定</string>
|
||||
<string name="language_settings">文字</string>
|
||||
<string name="language_settings_summary">選取文字自動修正選項</string>
|
||||
<string name="large_font">大</string>
|
||||
<string name="legal_information">法律資訊</string>
|
||||
<string name="legal_information_summary">檢視條款與細則</string>
|
||||
<string name="license_title">授權</string>
|
||||
<string name="location_gps">啟用 GPS 衛星</string>
|
||||
<string name="location_gps_disabled">定位到街道 (需要更多電池電量及更高衛星可見度)</string>
|
||||
<string name="location_label">位置提供者:</string>
|
||||
<string name="location_neighborhood_level">藉由 Wi-Fi 及/或行動電話網路判斷的位置</string>
|
||||
<string name="location_network_based">使用無線網路</string>
|
||||
<string name="location_networks_disabled">在應用程式中 (例如地圖) 使用無線網路檢視位置</string>
|
||||
<string name="location_source">我的位置</string>
|
||||
<string name="location_source_summary">選取判斷位置的來源</string>
|
||||
<string name="location_status">狀態:</string>
|
||||
<string name="location_street_level">精確定位到街道 (取消選取即可節省電池電量)</string>
|
||||
<string name="location_title">我的位置來源</string>
|
||||
<string name="lock_example_message">連接至少四個點。\n
|
||||
\n當您準備繪製專屬的模式時,請選取「下一步」。
|
||||
</string>
|
||||
<string name="lock_example_title">模式範例</string>
|
||||
<string name="lock_settings_title">畫面解除鎖定模式</string>
|
||||
<string name="lock_title">保護電話</string>
|
||||
<string name="lockpattern_change_lock_pattern_label">變更解除鎖定模式</string>
|
||||
<string name="lockpattern_confirm_button_text">確認</string>
|
||||
<string name="lockpattern_continue_button_text">繼續</string>
|
||||
<string name="lockpattern_need_to_confirm">再次繪製模式以便確定:</string>
|
||||
<string name="lockpattern_need_to_unlock">確認儲存的模式:</string>
|
||||
<string name="lockpattern_need_to_unlock_wrong">抱歉,再試一次:</string>
|
||||
<string name="lockpattern_pattern_confirmed_header">新的解除鎖定模式:</string>
|
||||
<string name="lockpattern_pattern_entered_header">已經記錄模式!</string>
|
||||
<string name="lockpattern_recording_incorrect_too_short">請連接至少 <xliff:g id="number">%d</xliff:g> 個點。再試一次:</string>
|
||||
<string name="lockpattern_recording_inprogress">完成後鬆開手指。</string>
|
||||
<string name="lockpattern_recording_intro_footer">按下功能表開啟說明。</string>
|
||||
<string name="lockpattern_recording_intro_header">繪製解除鎖定模式:</string>
|
||||
<string name="lockpattern_restart_button_text">重新繪製</string>
|
||||
<string name="lockpattern_retry_button_text">重試</string>
|
||||
<string name="lockpattern_settings_change_lock_pattern">變更解除鎖定模式</string>
|
||||
<string name="lockpattern_settings_choose_lock_pattern">設定解除鎖定模式</string>
|
||||
<string name="lockpattern_settings_enable_summary">必須繪製模式以便解除鎖定畫面</string>
|
||||
<string name="lockpattern_settings_enable_title">需要模式</string>
|
||||
<string name="lockpattern_settings_enable_visible_pattern_title">使用可見模式</string>
|
||||
<string name="lockpattern_settings_help_how_to_record">繪製解除鎖定模式的方式:</string>
|
||||
<string name="lockpattern_settings_title">解除鎖定模式</string>
|
||||
<string name="lockpattern_too_many_failed_confirmation_attempts_footer">請在 <xliff:g id="number">%d</xliff:g> 秒後再試一次。</string>
|
||||
<string name="lockpattern_too_many_failed_confirmation_attempts_header">過多不正確嘗試!</string>
|
||||
<string name="manage_applications_title">管理應用程式</string>
|
||||
<string name="manage_space_text">管理空間</string>
|
||||
<string name="manageapplications_settings_title">管理應用程式</string>
|
||||
<string name="mass_storage">用於 USB 儲存</string>
|
||||
<string name="master_clear_button_text">重設電話</string>
|
||||
<string name="master_clear_desc">此動作將會把電話重設為其初始的出廠狀態,並清除所有的資料及下載的應用程式!</string>
|
||||
<string name="master_clear_failed">尚未執行重設;因為無法使用系統清除服務。</string>
|
||||
<string name="master_clear_final_button_text">全部清除</string>
|
||||
<string name="master_clear_final_desc">重設電話,並清除所有的資料及應用程式?此動作無法還原!</string>
|
||||
<string name="master_clear_gesture_explanation">您必須繪製解除鎖定模式,以便確認重設電話。</string>
|
||||
<string name="master_clear_gesture_prompt">請繪製解除鎖定模式:</string>
|
||||
<string name="master_clear_summary">清除電話上的所有資料</string>
|
||||
<string name="master_clear_title">出廠資料重設</string>
|
||||
<string name="mb_text">MB</string>
|
||||
<string name="media_volume_summary">設定音樂及影片音量</string>
|
||||
<string name="media_volume_title">媒體音量</string>
|
||||
<string name="medium_font">中</string>
|
||||
<string name="memory_available">可用空間</string>
|
||||
<string name="memory_size">總空間</string>
|
||||
<string name="menu_cancel">放棄</string>
|
||||
<string name="menu_delete">刪除 APN</string>
|
||||
<string name="menu_new">新增 APN</string>
|
||||
<string name="menu_save">儲存</string>
|
||||
<string name="model_number">型號</string>
|
||||
<string name="network_settings_summary">設定漫遊、網路及 APN 選項</string>
|
||||
<string name="network_settings_title">行動電話網路</string>
|
||||
<string name="networks">選取電信業者</string>
|
||||
<string name="networks_title">網路設定</string>
|
||||
<string name="next_button_label">下一步</string>
|
||||
<string name="next_label">下一步</string>
|
||||
<string name="notification_sound_dialog_title">選取通知響鈴音調</string>
|
||||
<string name="notification_sound_summary">設定預設的通知響鈴音調</string>
|
||||
<string name="notification_sound_title">通知響鈴音調</string>
|
||||
<string name="permissions_label">權限</string>
|
||||
<string name="phone_info_label">電話資訊</string>
|
||||
<string name="phone_language">選取語言</string>
|
||||
<string name="ping_test_label">執行 Ping 測試</string>
|
||||
<string name="please_type_hex_key">WEP Hex 金鑰 (0-9、A-F)</string>
|
||||
<string name="please_type_passphrase">無線網路密碼</string>
|
||||
<string name="product_brand_label">產品品牌</string>
|
||||
<string name="product_device_label">電話類型</string>
|
||||
<string name="progress_scanning">正在掃描</string>
|
||||
<string name="proxy_action_text">儲存</string>
|
||||
<string name="proxy_clear_text">清除</string>
|
||||
<string name="proxy_defaultView_text">還原預設值</string>
|
||||
<string name="proxy_error">注意</string>
|
||||
<string name="proxy_error_dismiss">確定</string>
|
||||
<string name="proxy_error_empty_host_set_port">如果主機欄位保留空白,則連接埠欄位也必須保留空白。</string>
|
||||
<string name="proxy_error_empty_port">您必須填入連接埠欄位。</string>
|
||||
<string name="proxy_error_invalid_host">輸入的主機名稱無效。</string>
|
||||
<string name="proxy_error_invalid_port">輸入的連接埠無效。</string>
|
||||
<string name="proxy_hostname_label">主機名稱</string>
|
||||
<string name="proxy_port_label">連接埠</string>
|
||||
<string name="proxy_settings_label">Proxy 設定</string>
|
||||
<string name="quick_launch_assign_application">指定應用程式</string>
|
||||
<string name="quick_launch_clear_cancel_button">取消</string>
|
||||
<string name="quick_launch_clear_dialog_message">將會清除 <xliff:g id="shortcut_letter">%1$s</xliff:g> (<xliff:g id="application_name">%2$s</xliff:g>) 的捷徑。</string>
|
||||
<string name="quick_launch_clear_dialog_title">清除</string>
|
||||
<string name="quick_launch_clear_ok_button">確定</string>
|
||||
<string name="quick_launch_display_mode_applications">應用程式</string>
|
||||
<string name="quick_launch_display_mode_shortcuts">捷徑</string>
|
||||
<string name="quick_launch_no_shortcut">無捷徑</string>
|
||||
<string name="quick_launch_shortcut">搜尋 + <xliff:g id="shortcut_letter">%1$s</xliff:g></string>
|
||||
<string name="quick_launch_summary">設定鍵盤捷徑以便啟動應用程式</string>
|
||||
<string name="quick_launch_title">快速啟動</string>
|
||||
<string name="radioInfo_cid">CID</string>
|
||||
<string name="radioInfo_data_connected">已連線</string>
|
||||
<string name="radioInfo_data_connecting">正在連線</string>
|
||||
<string name="radioInfo_data_disconnected">已中斷連線</string>
|
||||
<string name="radioInfo_data_suspended">已擱置</string>
|
||||
<string name="radioInfo_display_asu">asu</string>
|
||||
<string name="radioInfo_display_bytes">位元組</string>
|
||||
<string name="radioInfo_display_dbm">dBm</string>
|
||||
<string name="radioInfo_display_packets">pkts</string>
|
||||
<string name="radioInfo_lac">LAC</string>
|
||||
<string name="radioInfo_menu_disableData">停用資料連線</string>
|
||||
<string name="radioInfo_menu_disableDataOnBoot">開機時停用資料</string>
|
||||
<string name="radioInfo_menu_enableData">啟用資料連線</string>
|
||||
<string name="radioInfo_menu_enableDataOnBoot">開機時啟用資料</string>
|
||||
<string name="radioInfo_menu_getPDP">取得 PDP 清單</string>
|
||||
<string name="radioInfo_menu_viewADN">檢視 SIM 卡通訊錄</string>
|
||||
<string name="radioInfo_menu_viewFDN">檢視固定撥號號碼</string>
|
||||
<string name="radioInfo_menu_viewSDN">檢視服務撥號號碼</string>
|
||||
<string name="radioInfo_phone_idle">閒置</string>
|
||||
<string name="radioInfo_phone_offhook">通話中</string>
|
||||
<string name="radioInfo_phone_ringing">響鈴中</string>
|
||||
<string name="radioInfo_roaming_in">漫遊中</string>
|
||||
<string name="radioInfo_roaming_not">尚未漫遊</string>
|
||||
<string name="radioInfo_service_emergency">僅限緊急通話</string>
|
||||
<string name="radioInfo_service_in">服務中</string>
|
||||
<string name="radioInfo_service_off">關閉無線電話</string>
|
||||
<string name="radioInfo_service_out">超出服務區域</string>
|
||||
<string name="radioInfo_unknown">無法辨識</string>
|
||||
<string name="radio_controls_summary">管理 Wi-Fi、藍牙、飛安模式及行動電話網路</string>
|
||||
<string name="radio_controls_title">無線控制</string>
|
||||
<string name="radio_info_band_mode_label">選取無線電波波段</string>
|
||||
<string name="radio_info_call_redirect_label">撥號重新導向:</string>
|
||||
<string name="radio_info_call_status_label">撥號狀態:</string>
|
||||
<string name="radio_info_current_network_label">目前網路:</string>
|
||||
<string name="radio_info_data_attempts_label">資料嘗試次數:</string>
|
||||
<string name="radio_info_data_successes_label">資料成功次數:</string>
|
||||
<string name="radio_info_gprs_service_label">GPRS 服務:</string>
|
||||
<string name="radio_info_gsm_disconnects_label">與 GSM 中斷連線:</string>
|
||||
<string name="radio_info_gsm_service_label">GSM 服務:</string>
|
||||
<string name="radio_info_http_client_test">HTTP 用戶端測試:</string>
|
||||
<string name="radio_info_imei_label">IMEI:</string>
|
||||
<string name="radio_info_imsi_label">IMSI:</string>
|
||||
<string name="radio_info_message_waiting_label">訊息等待中:</string>
|
||||
<string name="radio_info_neighboring_location_label">鄰近 CID:</string>
|
||||
<string name="radio_info_network_type_label">網路類型:</string>
|
||||
<string name="radio_info_phone_number_label">電話號碼:</string>
|
||||
<string name="radio_info_ping_hostname">Ping 主機名稱 (www.google.com):</string>
|
||||
<string name="radio_info_ping_ipaddr">Ping IpAddr:</string>
|
||||
<string name="radio_info_ppp_received_label">接收的 PPP:</string>
|
||||
<string name="radio_info_ppp_resets_label">開機後重設 PPP 號碼:</string>
|
||||
<string name="radio_info_ppp_sent_label">傳送的 PPP:</string>
|
||||
<string name="radio_info_radio_resets_label">無線電話重設:</string>
|
||||
<string name="radio_info_roaming_label">漫遊中:</string>
|
||||
<string name="radio_info_set_perferred_label">設定偏好的網路類型:</string>
|
||||
<string name="radio_info_signal_location_label">位置:</string>
|
||||
<string name="radio_info_signal_strength_label">訊號強度:</string>
|
||||
<string name="radio_info_smsc_label">SMSC:</string>
|
||||
<string name="radio_info_smsc_refresh_label">重新整理</string>
|
||||
<string name="radio_info_smsc_update_label">更新</string>
|
||||
<string name="radio_info_toggle_ciph_label">切換密碼</string>
|
||||
<string name="read_only">\u0020(唯讀)</string>
|
||||
<string name="recompute_size">正在重新計算大小\u2026</string>
|
||||
<string name="ring_volume_summary">設定來電音量</string>
|
||||
<string name="ring_volume_title">響鈴音量</string>
|
||||
<string name="ringer_volume_instructions">使用音量鍵調整響鈴音量</string>
|
||||
<string name="ringer_volume_ringer_mode_label">響鈴模式</string>
|
||||
<string name="ringer_volume_ringtone_label">響鈴音調</string>
|
||||
<string name="ringer_volume_screen_increasing_text">鈴聲漸強</string>
|
||||
<string name="ringtone_summary">設定預設的來電響鈴音調</string>
|
||||
<string name="ringtone_title">電話響鈴音調</string>
|
||||
<string name="roaming">資料漫遊</string>
|
||||
<string name="roaming_disable">漫遊時連線到資料服務</string>
|
||||
<string name="roaming_enable">漫遊時連線到資料服務</string>
|
||||
<string name="roaming_reenable_message">您已經關閉主網路的資料漫遊功能,所以無法進行資料連線。</string>
|
||||
<string name="roaming_reenable_title">注意</string>
|
||||
<string name="roaming_turn_it_on_button">請將其開啟</string>
|
||||
<string name="roaming_warning">允許資料漫遊?您可能需要支付一筆漫遊費用!</string>
|
||||
<string name="scan_wifi">掃描</string>
|
||||
<string name="screen_off_timeout_label">充電時永不逾時</string>
|
||||
<string name="screen_timeout">畫面逾時</string>
|
||||
<string name="sd_card_settings_label">SD 卡</string>
|
||||
<string name="sd_eject">卸載/退出 SD 卡</string>
|
||||
<string name="sd_memory">SD 卡</string>
|
||||
<string name="sd_unavailable">不可用</string>
|
||||
<string name="sdcard_changes_instructions">變更會在重新連接 USB 傳輸線時生效</string>
|
||||
<string name="sdcard_removal_alert_ok">確定</string>
|
||||
<string name="sdcard_removal_alert_scolding">SD 卡使用時被取出!
|
||||
若要避免毀損,請先使用 SD 卡的設定畫面來將其卸載,然後再取出。</string>
|
||||
<string name="sdcard_removal_alert_title">不安全的 SD 卡取出動作!</string>
|
||||
<string name="sdcard_setting">SD 卡</string>
|
||||
<string name="sdcard_settings_available_bytes_label">可用的位元組:</string>
|
||||
<string name="sdcard_settings_bad_removal_status">SD 卡使用時被取出!</string>
|
||||
<string name="sdcard_settings_mass_storage_status">正在使用 SD 卡做為高容量儲存裝置</string>
|
||||
<string name="sdcard_settings_not_present_status">無 SD 卡</string>
|
||||
<string name="sdcard_settings_read_only_status">掛載的 SD 卡為唯讀</string>
|
||||
<string name="sdcard_settings_scanning_status">正在掃描 SD 卡的媒體\u2026</string>
|
||||
<string name="sdcard_settings_screen_mass_storage_text">啟用 USB 高容量儲存</string>
|
||||
<string name="sdcard_settings_total_bytes_label">總位元組:</string>
|
||||
<string name="sdcard_settings_unmounted_status">現在可以安全地移除 SD 卡</string>
|
||||
<string name="sdcard_settings_used_bytes_label">使用的位元組:</string>
|
||||
<string name="sdcard_unmount">卸載 SD 卡</string>
|
||||
<string name="sdcard_unmountable_alert_ok">確定</string>
|
||||
<string name="sdcard_unmountable_alert_title">無法讀取 SD 卡</string>
|
||||
<string name="sdcard_unmountable_message">無法讀取 SD 卡。
|
||||
檔案系統可能已經毀損或卡片可能受損。</string>
|
||||
<string name="security">安全性</string>
|
||||
<string name="security_and_data_label">安全性與資料</string>
|
||||
<string name="security_passwords_title">密碼</string>
|
||||
<string name="security_settings_desc">此應用程式可以存取之電話上的資料如下所示:</string>
|
||||
<string name="security_settings_summary">我的位置、畫面解除鎖定、SIM 卡鎖定</string>
|
||||
<string name="security_settings_title">安全性與位置</string>
|
||||
<string name="select_your_language">選取您的語言</string>
|
||||
<string name="set_lock_pattern_label">繪製解除鎖定模式:</string>
|
||||
<string name="settings_chooser_pick_string">
|
||||
設定的圖示應該移動到:
|
||||
</string>
|
||||
<string name="settings_label">設定</string>
|
||||
<string name="settings_license_activity_loading">正在載入\u2026</string>
|
||||
<string name="settings_license_activity_title">開啟來源授權</string>
|
||||
<string name="settings_license_activity_unavailable">載入授權時發生問題。</string>
|
||||
<string name="show_password">可見的密碼</string>
|
||||
<string name="show_password_summary">輸入時顯示密碼</string>
|
||||
<string name="signal">訊號強度</string>
|
||||
<string name="silent_mode_summary">除了媒體以外的所有聲音都會變為靜音。</string>
|
||||
<string name="silent_mode_title">靜音模式</string>
|
||||
<string name="sim_bad_pin">PIN 碼不正確!</string>
|
||||
<string name="sim_change_failed">無法變更 PIN 碼。\n可能是 PIN 碼不正確。</string>
|
||||
<string name="sim_change_pin">變更 SIM 卡 PIN 碼</string>
|
||||
<string name="sim_change_succeeded">變更 SIM 卡 PIN 碼成功</string>
|
||||
<string name="sim_disable_sim_lock">停用 SIM 卡鎖定</string>
|
||||
<string name="sim_enable_sim_lock">啟用 SIM 卡鎖定</string>
|
||||
<string name="sim_enter_cancel">取消</string>
|
||||
<string name="sim_enter_new">輸入新 PIN 碼</string>
|
||||
<string name="sim_enter_ok">確定</string>
|
||||
<string name="sim_enter_old">輸入舊 PIN 碼</string>
|
||||
<string name="sim_enter_pin">輸入 SIM 卡 PIN 碼</string>
|
||||
<string name="sim_lock_failed">無法變更 SIM 卡鎖定狀態。\n可能是 PIN 碼不正確。</string>
|
||||
<string name="sim_lock_off">需要 PIN 碼才能使用電話</string>
|
||||
<string name="sim_lock_on">需要 PIN 碼才能使用電話</string>
|
||||
<string name="sim_lock_settings">SIM 卡鎖定設定</string>
|
||||
<string name="sim_lock_settings_category">設定 SIM 卡鎖定</string>
|
||||
<string name="sim_lock_settings_title">SIM 卡鎖定</string>
|
||||
<string name="sim_pin_change">變更 PIN 碼</string>
|
||||
<string name="sim_pin_toggle">鎖定 SIM 卡</string>
|
||||
<string name="sim_pins_dont_match">PIN 碼不相符!</string>
|
||||
<string name="sim_reenter_new">重新輸入新 PIN 碼</string>
|
||||
<string name="skip_button_label">取消</string>
|
||||
<string name="small_font">小</string>
|
||||
<string name="software_version">軟體版本</string>
|
||||
<string name="sort_order_alpha">依照字母順序排序</string>
|
||||
<string name="sort_order_size">依照大小排序 (遞減)</string>
|
||||
<string name="sound_and_display_settings">聲音與顯示</string>
|
||||
<string name="sound_and_display_settings_summary">設定響鈴音調、通知、畫面亮度</string>
|
||||
<string name="sound_effects_enable_summary_off">點選畫面選項時播放聲音</string>
|
||||
<string name="sound_effects_enable_summary_on">點選畫面選項時播放聲音</string>
|
||||
<string name="sound_effects_enable_title">聲音選取</string>
|
||||
<string name="sound_settings">聲音設定</string>
|
||||
<string name="status_authenticating">正在驗證\u2026</string>
|
||||
<string name="status_awake_time">喚醒時間</string>
|
||||
<string name="status_bt_address">藍牙位址</string>
|
||||
<string name="status_connected">已連線</string>
|
||||
<string name="status_connecting">正在連線\u2026</string>
|
||||
<string name="status_data_state">資料存取</string>
|
||||
<string name="status_disconnected">已中斷連線</string>
|
||||
<string name="status_disconnecting">正在中斷連線\u2026</string>
|
||||
<string name="status_failed">失敗</string>
|
||||
<string name="status_imei">IMEI</string>
|
||||
<string name="status_imei_sv">IMEI SV</string>
|
||||
<string name="status_imsi">IMSI</string>
|
||||
<string name="status_network_type">網路類型</string>
|
||||
<string name="status_number">電話號碼</string>
|
||||
<string name="status_obtaining_ip">正在取得位址\u2026</string>
|
||||
<string name="status_operator">網路</string>
|
||||
<string name="status_roaming">漫遊中</string>
|
||||
<string name="status_scanning">正在掃描\u2026</string>
|
||||
<string name="status_service_state">服務狀態</string>
|
||||
<string name="status_signal_strength">訊號強度</string>
|
||||
<string name="status_unavailable">不可用</string>
|
||||
<string name="status_up_time">正常運作時間</string>
|
||||
<string name="status_wifi_mac_address">Wi-Fi MAC 位址</string>
|
||||
<string name="stay_on">充電時畫面永遠保持開啟</string>
|
||||
<string name="storage_label">儲存空間</string>
|
||||
<string name="storage_settings_summary">卸載 SD 卡,檢視可用的儲存空間</string>
|
||||
<string name="storage_settings_title">SD 卡與電話儲存空間</string>
|
||||
<string name="sum_carrier_select">選取網路電信業者</string>
|
||||
<string name="summary_connection_failed">連線失敗,選取以便再試一次</string>
|
||||
<string name="summary_not_in_range">超出範圍</string>
|
||||
<string name="summary_remembered">已記住</string>
|
||||
<string name="sync_automatically">自動同步</string>
|
||||
<string name="sync_calendar">行事曆</string>
|
||||
<string name="sync_contacts">連絡人</string>
|
||||
<string name="sync_disabled">選取自動同步資料</string>
|
||||
<string name="sync_do_nothing">目前不執行任何動作。</string>
|
||||
<string name="sync_enabled">自動同步資料</string>
|
||||
<string name="sync_gmail">Gmail</string>
|
||||
<string name="sync_is_failing">同步目前發生問題。將會立即恢復正常。</string>
|
||||
<string name="sync_menu_sync_cancel">取消同步</string>
|
||||
<string name="sync_menu_sync_now">立即同步</string>
|
||||
<string name="sync_really_delete">刪除項目。</string>
|
||||
<string name="sync_settings">資料同步</string>
|
||||
<string name="sync_settings_summary">選取要同步的應用程式</string>
|
||||
<string name="sync_too_many_deletes">已經超過刪除上限</string>
|
||||
<string name="sync_too_many_deletes_desc">%d 個 %s 刪除的項目,來自 %s 帳號。處理的方式為?</string>
|
||||
<string name="sync_undo_deletes">復原刪除的項目。</string>
|
||||
<string name="target_build_field_label">要求的建置類型</string>
|
||||
<string name="team_title">團隊</string>
|
||||
<string name="telephony_apn_label">APN:</string>
|
||||
<string name="telephony_mcc_label">MCC:</string>
|
||||
<string name="telephony_mmsc_label">MMSC:</string>
|
||||
<string name="telephony_mmsport_label">多媒體簡訊連接埠:</string>
|
||||
<string name="telephony_mmsproxy_label">多媒體簡訊 Proxy:</string>
|
||||
<string name="telephony_mnc_label">MNC:</string>
|
||||
<string name="telephony_name_label">名稱:</string>
|
||||
<string name="telephony_password_label">密碼:</string>
|
||||
<string name="telephony_port_label">連接埠:</string>
|
||||
<string name="telephony_proxy_label">Proxy:</string>
|
||||
<string name="telephony_server_label">伺服器:</string>
|
||||
<string name="telephony_user_label">使用者:</string>
|
||||
<string name="terms_title">條款和條件</string>
|
||||
<string name="testing">正在測試</string>
|
||||
<string name="testing_battery_info">電池資訊</string>
|
||||
<string name="testing_phone_info">電話資訊</string>
|
||||
<string name="testing_sim_toolkit">SIM Toolkit</string>
|
||||
<string name="text_category">文字設定</string>
|
||||
<string name="total_size_label">總計</string>
|
||||
<string name="turn_off_qxdm">停用 QXDM SD 記錄</string>
|
||||
<string name="turn_off_radio">關閉無線電話</string>
|
||||
<string name="turn_on_qxdm">啟用 QXDM SD 記錄</string>
|
||||
<string name="turn_on_radio">開啟無線電話</string>
|
||||
<string name="underdeveloped_settings_label">開發中的設定</string>
|
||||
<string name="uninstall_failed">無法解除安裝應用程式。</string>
|
||||
<string name="uninstall_text">解除安裝</string>
|
||||
<string name="unknown">無法辨識</string>
|
||||
<string name="vibrate_summary">來電時震動電話</string>
|
||||
<string name="vibrate_title">電話震動</string>
|
||||
<string name="wallpaper_label">桌布</string>
|
||||
<string name="wifi">Wi-Fi</string>
|
||||
<string name="wifi_access_points">Wi-Fi 網路</string>
|
||||
<string name="wifi_add_other_network">新增 Wi-Fi 網路</string>
|
||||
<string name="wifi_context_menu_change_password">變更密碼</string>
|
||||
<string name="wifi_context_menu_connect">連線到網路</string>
|
||||
<string name="wifi_context_menu_forget">忽略網路</string>
|
||||
<string name="wifi_dhcp_timeout_error">取得 IP 位址時發生問題。</string>
|
||||
<string name="wifi_dns1">DNS 1</string>
|
||||
<string name="wifi_dns2">DNS 2</string>
|
||||
<string name="wifi_dns3">DNS 3</string>
|
||||
<string name="wifi_dns_label">DNS:</string>
|
||||
<string name="wifi_error">錯誤</string>
|
||||
<string name="wifi_gateway">閘道</string>
|
||||
<string name="wifi_gateway_label">閘道:</string>
|
||||
<string name="wifi_generic_connection_error">連線到網路時發生問題。請再試一次。</string>
|
||||
<string name="wifi_host_ip">主機 IP:</string>
|
||||
<string name="wifi_ip_address">IP 位址</string>
|
||||
<string name="wifi_ip_settings_invalid_ip">請輸入有效的 IP 位址。</string>
|
||||
<string name="wifi_ip_settings_menu_cancel">取消</string>
|
||||
<string name="wifi_ip_settings_menu_save">儲存</string>
|
||||
<string name="wifi_ip_settings_titlebar">IP 設定</string>
|
||||
<string name="wifi_link_speed">速度</string>
|
||||
<string name="wifi_menu_advanced">進階</string>
|
||||
<string name="wifi_netmask">網路遮罩</string>
|
||||
<string name="wifi_netmask_label">網路遮罩:</string>
|
||||
<string name="wifi_notify_open_networks">網路通知</string>
|
||||
<string name="wifi_notify_open_networks_summary">當找到可用的開放網路時通知我</string>
|
||||
<string name="wifi_password_incorrect_error">輸入的網路密碼不正確。請再試一次。</string>
|
||||
<string name="wifi_password_unchanged">(尚未變更)</string>
|
||||
<string name="wifi_prefer_wifi">偏好 Wi-Fi</string>
|
||||
<string name="wifi_quick_toggle_summary">選取啟動 Wi-Fi</string>
|
||||
<string name="wifi_quick_toggle_title">Wi-Fi</string>
|
||||
<string name="wifi_save_config">儲存</string>
|
||||
<string name="wifi_screen_activate_text">啟動</string>
|
||||
<string name="wifi_screen_dhcp_text">自動</string>
|
||||
<string name="wifi_screen_dns_text">209.81.59.2</string>
|
||||
<string name="wifi_screen_gateway_text">192.168.20.1</string>
|
||||
<string name="wifi_screen_ip_text">192.168.20.10</string>
|
||||
<string name="wifi_screen_manual_text">手動</string>
|
||||
<string name="wifi_screen_netmask_text">255.255.255.0</string>
|
||||
<string name="wifi_screen_status_text">Wi-Fi 運作中</string>
|
||||
<string name="wifi_screen_test_text">測試</string>
|
||||
<string name="wifi_security">安全性</string>
|
||||
<string name="wifi_security_open">開啟</string>
|
||||
<string name="wifi_security_unknown">無法辨識</string>
|
||||
<string name="wifi_security_verbose_open">開啟網路</string>
|
||||
<string name="wifi_security_verbose_wep">已經受到 WEP 保護</string>
|
||||
<string name="wifi_security_verbose_wpa">已經受到 WPA 保護</string>
|
||||
<string name="wifi_security_verbose_wpa2">已經受到 WPA2 保護</string>
|
||||
<string name="wifi_security_wep">WEP</string>
|
||||
<string name="wifi_security_wpa">WPA</string>
|
||||
<string name="wifi_security_wpa2">WPA2</string>
|
||||
<string name="wifi_settings">Wi-Fi 設定</string>
|
||||
<string name="wifi_settings_category">Wi-Fi 設定</string>
|
||||
<string name="wifi_settings_summary">設定與管理無線存取點</string>
|
||||
<string name="wifi_show_password">顯示密碼。</string>
|
||||
<string name="wifi_signal_0">弱</string>
|
||||
<string name="wifi_signal_1">尚可</string>
|
||||
<string name="wifi_signal_2">良好</string>
|
||||
<string name="wifi_signal_3">強</string>
|
||||
<string name="wifi_starting">正在啟動\u2026</string>
|
||||
<string name="wifi_status">狀態</string>
|
||||
<string name="wifi_stopping">正在關閉\u2026</string>
|
||||
<string name="wifi_type_ssid">輸入網路 SSID:</string>
|
||||
<string name="wifi_use_static_ip">使用靜態 IP</string>
|
||||
<string name="wifi_wlan_id">WLAN ID:</string>
|
||||
</resources>
|
@@ -20,76 +20,106 @@
|
||||
<resources>
|
||||
<!-- Choices for timezone picker first level.
|
||||
These values will be used as search terms for TimeZone displayName
|
||||
strings. -->
|
||||
strings. --> <skip />
|
||||
<!-- The time zone picker screen has two levels. The first level allows the user to choose a region. -->
|
||||
<string-array name="timezone_filters">
|
||||
<!-- The next level of the time zoner picker should show time zones from the Americas. -->
|
||||
<item>America</item>
|
||||
<!-- The next level of the time zoner picker should show time zones from Europe. -->
|
||||
<item>Europe</item>
|
||||
<!-- The next level of the time zoner picker should show time zones from Africa. -->
|
||||
<item>Africa</item>
|
||||
<!-- The next level of the time zoner picker should show time zones from Asia. -->
|
||||
<item>Asia</item>
|
||||
<!-- The next level of the time zoner picker should show time zones from Australia. -->
|
||||
<item>Australia</item>
|
||||
<!-- The next level of the time zoner picker should show time zones from Pacific. -->
|
||||
<item>Pacific</item>
|
||||
<!-- The next level of the time zoner picker should show time zones from ALL regions. -->
|
||||
<item>All</item>
|
||||
</string-array>
|
||||
|
||||
<!-- List of formats for date display to display
|
||||
in Date & Time Settings screen -->
|
||||
<!-- There is a setting to control the format of dates displayed throughout the system. This is in the Date & Time Settings screen. Unfortunately, these cannot be changed at all. --> <skip />
|
||||
<!-- Do not translate. This is fed directly to the formatter. -->
|
||||
<string-array name="date_format_values">
|
||||
<!-- Do not translate. This is fed directly to the formatter. -->
|
||||
<item>MM-dd-yyyy</item>
|
||||
<!-- Do not translate. This is fed directly to the formatter. -->
|
||||
<item>dd-MM-yyyy</item>
|
||||
<!-- Do not translate. This is fed directly to the formatter. -->
|
||||
<item>MMM dd, yyyy</item>
|
||||
<!-- Do not translate. This is fed directly to the formatter. -->
|
||||
<item>dd-MMM-yyyy</item>
|
||||
<!-- Do not translate. This is fed directly to the formatter. -->
|
||||
<item>yyyy-MM-dd</item>
|
||||
</string-array>
|
||||
|
||||
<!-- Display settings -->
|
||||
<!-- Display settings. The delay in inactivity before the screen is turned off. These are shown ain a list dialog. -->
|
||||
<string-array name="screen_timeout_entries">
|
||||
<item>15 seconds</item>
|
||||
<item>30 seconds</item>
|
||||
<item>1 minute</item>
|
||||
<item>2 minutes</item>
|
||||
<item>10 minutes</item>
|
||||
<!-- Choosing this means the screen will only turn off after the user manually does so. There will be no inactivity check. -->
|
||||
<item>Never timeout</item>
|
||||
</string-array>
|
||||
|
||||
<!-- Do not translate. -->
|
||||
<string-array name="screen_timeout_values">
|
||||
<!-- Do not translate. -->
|
||||
<item>15000</item>
|
||||
<!-- Do not translate. -->
|
||||
<item>30000</item>
|
||||
<!-- Do not translate. -->
|
||||
<item>60000</item>
|
||||
<!-- Do not translate. -->
|
||||
<item>120000</item>
|
||||
<!-- Do not translate. -->
|
||||
<item>600000</item>
|
||||
<!-- Do not translate. -->
|
||||
<item>-1</item>
|
||||
</string-array>
|
||||
|
||||
<!-- Wi-Fi settings -->
|
||||
|
||||
<!-- Match this with code. -->
|
||||
<!-- Match this with code. --> <skip />
|
||||
<!-- Wi-Fi settings. The type of security a Wi-Fi network has. The user can choose this when he adds a manual network, or configures an existing network. -->
|
||||
<string-array name="wifi_security_entries">
|
||||
<!-- Let the phone figure out the security type auutomatically. -->
|
||||
<item>Auto</item>
|
||||
<!-- The Wi-Fi network does not have any security. -->
|
||||
<item>None</item>
|
||||
<!-- Do not translate. The Wi-Fi network has WEP security. -->
|
||||
<item>WEP</item>
|
||||
<!-- The Wi-Fi network has WPA personal security. WPA Personal is a tech term, and might be better left untranslated? -->
|
||||
<item>WPA Personal</item>
|
||||
<!-- The Wi-Fi network has WPA2 personal security. WPA Personal is a tech term, and might be better left untranslated? -->
|
||||
<item>WPA2 Personal</item>
|
||||
</string-array>
|
||||
|
||||
<!-- Match this with code. -->
|
||||
<!-- Match this with code. --> <skip />
|
||||
<!-- Wi-Fi settings. The type of security a Wi-Fi network has. The user can choose this when he adds a manual network, or configures an existing network. -->
|
||||
<string-array name="wifi_security_without_auto_entries">
|
||||
<!-- The Wi-Fi network does not have any security. -->
|
||||
<item>None</item>
|
||||
<!-- Do not translate. The Wi-Fi network has WEP security. -->
|
||||
<item>WEP</item>
|
||||
<!-- The Wi-Fi network has WPA personal security. WPA Personal is a tech term, and might be better left untranslated? -->
|
||||
<item>WPA Personal</item>
|
||||
<!-- The Wi-Fi network has WPA2 personal security. WPA Personal is a tech term, and might be better left untranslated? -->
|
||||
<item>WPA2 Personal</item>
|
||||
</string-array>
|
||||
|
||||
<!-- Match this with code. -->
|
||||
<!-- Match this with code. --> <skip />
|
||||
<!-- Wi-Fi settings. Presented as a list dialog to the user. He chooses the type of WEP key he entered. -->
|
||||
<string-array name="wifi_wep_type">
|
||||
<!-- This means the phone should figure out the type automatically the best it can. -->
|
||||
<item>Auto</item>
|
||||
<!-- Do not translate. -->
|
||||
<item>WEP ASCII</item>
|
||||
<!-- WEP key that is in hexadecimal. -->
|
||||
<item>WEP hexadecimal</item>
|
||||
</string-array>
|
||||
|
||||
<string-array name="friction_values">
|
||||
<item>normal</item>
|
||||
<item>no friction</item>
|
||||
<item>no inertia</item>
|
||||
</string-array>
|
||||
|
||||
</resources>
|
||||
|
@@ -30,6 +30,7 @@
|
||||
android:persistent="false" />
|
||||
|
||||
<PreferenceScreen
|
||||
android:key="quick_launch"
|
||||
android:title="@string/quick_launch_title"
|
||||
android:summary="@string/quick_launch_summary">
|
||||
<intent android:action="android.intent.action.MAIN"
|
||||
|
36
res/xml/bluetooth_device_advanced.xml
Normal file
@@ -0,0 +1,36 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Copyright (C) 2008 The Android Open Source Project
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
-->
|
||||
|
||||
<PreferenceScreen
|
||||
xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
|
||||
<PreferenceCategory
|
||||
android:key="title" />
|
||||
|
||||
<CheckBoxPreference
|
||||
android:key="online_mode"
|
||||
android:title="@string/bluetooth_device_advanced_online_mode_title"
|
||||
android:persistent="false" />
|
||||
|
||||
<PreferenceCategory
|
||||
android:key="profile_container"
|
||||
android:title="@string/bluetooth_device_advanced_profile_header_title">
|
||||
|
||||
<!-- Profile checkboxes will be added here programmatically. -->
|
||||
|
||||
</PreferenceCategory>
|
||||
|
||||
</PreferenceScreen>
|
@@ -14,33 +14,43 @@
|
||||
limitations under the License.
|
||||
-->
|
||||
|
||||
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<PreferenceScreen
|
||||
xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
|
||||
<PreferenceCategory
|
||||
android:title="@string/bluetooth_settings"/>
|
||||
android:title="@string/bluetooth_settings" />
|
||||
|
||||
<CheckBoxPreference android:key="bt_checkbox"
|
||||
android:title="@string/bluetooth"
|
||||
android:summaryOff="@string/bluetooth_disabled"
|
||||
android:summaryOn="@string/bluetooth_enabled"
|
||||
/>
|
||||
<CheckBoxPreference
|
||||
android:key="bt_checkbox"
|
||||
android:title="@string/bluetooth"
|
||||
android:summary="@string/bluetooth_quick_toggle_summary" />
|
||||
|
||||
<CheckBoxPreference android:key="bt_visibility"
|
||||
android:title="@string/bluetooth_visibility"
|
||||
android:dependency="bt_checkbox"
|
||||
android:summaryOn="@string/bluetooth_is_discoverable"
|
||||
android:summaryOff="@string/bluetooth_not_discoverable"
|
||||
android:persistent="false"
|
||||
/>
|
||||
|
||||
<EditTextPreference android:key="bt_name"
|
||||
<com.android.settings.bluetooth.BluetoothNamePreference
|
||||
android:key="bt_name"
|
||||
android:title="@string/bluetooth_device_name"
|
||||
android:summary="@string/bluetooth_name_not_set"
|
||||
android:dialogTitle="@string/bluetooth_device_name"
|
||||
android:dependency="bt_checkbox"
|
||||
android:singleLine="true"/>
|
||||
<com.android.settings.ProgressCategory
|
||||
android:key="bt_device_list"
|
||||
android:persistent="false"
|
||||
android:singleLine="true" />
|
||||
|
||||
<CheckBoxPreference
|
||||
android:key="bt_discoverable"
|
||||
android:title="@string/bluetooth_visibility"
|
||||
android:dependency="bt_checkbox"
|
||||
android:summaryOn="@string/bluetooth_is_discoverable"
|
||||
android:summaryOff="@string/bluetooth_not_discoverable"
|
||||
android:persistent="false" />
|
||||
|
||||
<Preference
|
||||
android:key="bt_scan"
|
||||
android:dependency="bt_checkbox"
|
||||
android:title="@string/bluetooth_preference_scan_title" />
|
||||
|
||||
<com.android.settings.ProgressCategory
|
||||
android:key="bt_device_list"
|
||||
android:title="@string/bluetooth_devices"
|
||||
android:dependency="bt_checkbox"/>
|
||||
android:dependency="bt_checkbox"
|
||||
android:orderingFromXml="false" />
|
||||
|
||||
</PreferenceScreen>
|
||||
|
@@ -35,8 +35,8 @@
|
||||
/>
|
||||
<CheckBoxPreference android:key="24 hour"
|
||||
android:title="@string/date_time_24hour"
|
||||
android:summaryOn="13:00"
|
||||
android:summaryOff="1:00 pm"/>
|
||||
android:summaryOn="@string/date_time_24_hour_sample"
|
||||
android:summaryOff="@string/date_time_12_hour_sample"/>
|
||||
<ListPreference
|
||||
android:key="date_format"
|
||||
android:title="@string/date_time_date_format"
|
||||
|
@@ -29,4 +29,9 @@
|
||||
android:title="@string/keep_screen_on"
|
||||
android:summary="@string/keep_screen_on_summary"/>
|
||||
|
||||
<CheckBoxPreference
|
||||
android:key="allow_mock_location"
|
||||
android:title="@string/allow_mock_location"
|
||||
android:summary="@string/allow_mock_location_summary"/>
|
||||
|
||||
</PreferenceScreen>
|
||||
|
@@ -17,6 +17,13 @@
|
||||
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<PreferenceCategory android:title="@string/about_settings">
|
||||
|
||||
<!-- System update settings - launches activity -->
|
||||
<PreferenceScreen android:key="system_update_settings"
|
||||
android:title="@string/system_update_settings_list_item_title"
|
||||
android:summary="@string/system_update_settings_list_item_summary">
|
||||
<intent android:action="android.settings.SYSTEM_UPDATE_SETTINGS" />
|
||||
</PreferenceScreen>
|
||||
|
||||
<!-- Device status - launches activity -->
|
||||
<PreferenceScreen android:key="status_info"
|
||||
android:title="@string/device_status"
|
||||
|
@@ -15,7 +15,7 @@
|
||||
-->
|
||||
|
||||
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<PreferenceCategory android:title="@string/device_status"/>
|
||||
<PreferenceCategory android:title="@string/device_status_activity_title"/>
|
||||
|
||||
<Preference android:key="battery_status"
|
||||
style="?android:attr/preferenceInformationStyle"
|
||||
|
23
res/xml/input_methods_prefs.xml
Normal file
@@ -0,0 +1,23 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--
|
||||
/*
|
||||
* Copyright 2008, The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
-->
|
||||
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<PreferenceCategory
|
||||
android:title="@string/input_methods_settings_title" />
|
||||
|
||||
</PreferenceScreen>
|
@@ -16,6 +16,22 @@
|
||||
|
||||
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
|
||||
<PreferenceCategory
|
||||
android:title="@string/wifi_advanced_titlebar"
|
||||
/>
|
||||
|
||||
<ListPreference
|
||||
android:key="num_channels"
|
||||
android:title="@string/wifi_setting_num_channels_title"
|
||||
android:summary="@string/wifi_setting_num_channels_summary"
|
||||
android:persistent="false"
|
||||
/>
|
||||
|
||||
<Preference android:key="mac_address"
|
||||
style="?android:attr/preferenceInformationStyle"
|
||||
android:title="@string/wifi_advanced_mac_address_title"
|
||||
/>
|
||||
|
||||
<PreferenceCategory
|
||||
android:title="@string/wifi_ip_settings_titlebar"
|
||||
/>
|
||||
|
@@ -21,11 +21,10 @@
|
||||
android:key="language_category"
|
||||
android:title="@string/language_category">
|
||||
<!--
|
||||
<ListPreference
|
||||
<ListPreference
|
||||
android:title="@string/phone_language"/>
|
||||
-->
|
||||
|
||||
|
||||
<PreferenceScreen
|
||||
android:title="@string/phone_language">
|
||||
<intent android:action="android.intent.action.MAIN"
|
||||
@@ -36,6 +35,13 @@
|
||||
|
||||
<PreferenceCategory
|
||||
android:title="@string/text_category" />
|
||||
<PreferenceScreen
|
||||
android:title="@string/input_methods_settings_title"
|
||||
android:summary="@string/input_methods_settings_summary">
|
||||
<intent android:action="android.intent.action.MAIN"
|
||||
android:targetPackage="com.android.settings"
|
||||
android:targetClass="com.android.settings.InputMethodsSettings" />
|
||||
</PreferenceScreen>
|
||||
<CheckBoxPreference
|
||||
android:key="auto_replace"
|
||||
android:title="@string/auto_replace"
|
||||
|
@@ -27,7 +27,7 @@
|
||||
android:persistent="false"
|
||||
android:disableDependentsState="true" />
|
||||
|
||||
<VolumePreference
|
||||
<com.android.settings.RingerVolumePreference
|
||||
android:key="ring_volume"
|
||||
android:title="@string/ring_volume_title"
|
||||
android:summary="@string/ring_volume_summary"
|
||||
@@ -42,7 +42,6 @@
|
||||
android:summary="@string/media_volume_summary"
|
||||
android:dialogTitle="@string/media_volume_title"
|
||||
android:persistent="false"
|
||||
android:dependency="silent"
|
||||
android:streamType="music" />
|
||||
|
||||
<com.android.settings.DefaultRingtonePreference
|
||||
@@ -90,6 +89,14 @@
|
||||
|
||||
<PreferenceCategory
|
||||
android:title="@string/display_settings">
|
||||
|
||||
<CheckBoxPreference
|
||||
android:key="animations"
|
||||
android:title="@string/animations_title"
|
||||
android:summaryOn="@string/animations_summary_on"
|
||||
android:summaryOff="@string/animations_summary_off"
|
||||
android:dependency="silent" />
|
||||
|
||||
|
||||
<com.android.settings.BrightnessPreference
|
||||
android:key="brightness"
|
||||
|
@@ -51,7 +51,7 @@
|
||||
<intent
|
||||
android:action="android.intent.action.MAIN"
|
||||
android:targetPackage="com.android.settings"
|
||||
android:targetClass="com.android.settings.BluetoothSettings" />
|
||||
android:targetClass="com.android.settings.bluetooth.BluetoothSettings" />
|
||||
</PreferenceScreen>
|
||||
|
||||
<CheckBoxPreference
|
||||
|
@@ -100,9 +100,10 @@ public class AirplaneModeEnabler implements Preference.OnPreferenceChangeListene
|
||||
*/
|
||||
private void onAirplaneModeChanged() {
|
||||
ServiceState serviceState = mPhoneStateReceiver.getServiceState();
|
||||
boolean isPhoneOff = serviceState.getState() == ServiceState.STATE_POWER_OFF;
|
||||
mCheckBoxPref.setChecked(isPhoneOff);
|
||||
mCheckBoxPref.setSummary(R.string.airplane_mode_summary);
|
||||
boolean airplaneModeEnabled = serviceState.getState() == ServiceState.STATE_POWER_OFF;
|
||||
mCheckBoxPref.setChecked(airplaneModeEnabled);
|
||||
mCheckBoxPref.setSummary(airplaneModeEnabled ? null :
|
||||
mContext.getString(R.string.airplane_mode_summary));
|
||||
mCheckBoxPref.setEnabled(true);
|
||||
}
|
||||
|
||||
|
@@ -63,6 +63,8 @@ public class ApnEditor extends PreferenceActivity
|
||||
private EditTextPreference mMmsProxy;
|
||||
private EditTextPreference mMmsPort;
|
||||
private EditTextPreference mApnType;
|
||||
private String mCurMnc;
|
||||
private String mCurMcc;
|
||||
|
||||
private Uri mUri;
|
||||
private Cursor mCursor;
|
||||
@@ -210,6 +212,8 @@ public class ApnEditor extends PreferenceActivity
|
||||
// Auto populate MNC and MCC for new entries, based on what SIM reports
|
||||
mMcc.setText(mcc);
|
||||
mMnc.setText(mnc);
|
||||
mCurMnc = mnc;
|
||||
mCurMcc = mcc;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -338,6 +342,12 @@ public class ApnEditor extends PreferenceActivity
|
||||
|
||||
values.put(Telephony.Carriers.NUMERIC, mcc + mnc);
|
||||
|
||||
if (mCurMnc != null && mCurMcc != null) {
|
||||
if (mCurMnc.equals(mnc) && mCurMcc.equals(mcc)) {
|
||||
values.put(Telephony.Carriers.CURRENT, 1);
|
||||
}
|
||||
}
|
||||
|
||||
getContentResolver().update(mUri, values, null, null);
|
||||
|
||||
return true;
|
||||
|
@@ -27,6 +27,7 @@ import android.preference.PreferenceActivity;
|
||||
import android.preference.PreferenceCategory;
|
||||
import android.preference.PreferenceScreen;
|
||||
import android.provider.Telephony;
|
||||
import android.text.TextUtils;
|
||||
import android.view.Menu;
|
||||
import android.view.MenuItem;
|
||||
|
||||
@@ -68,12 +69,16 @@ public class ApnSettings extends PreferenceActivity {
|
||||
String name = mCursor.getString(NAME_INDEX);
|
||||
String apn = mCursor.getString(APN_INDEX);
|
||||
|
||||
Preference pref = new Preference((Context) this);
|
||||
pref.setKey(mCursor.getString(ID_INDEX));
|
||||
pref.setTitle(name);
|
||||
pref.setSummary(apn);
|
||||
pref.setPersistent(false);
|
||||
apnList.addPreference(pref);
|
||||
if (name != null && apn != null && TextUtils.getTrimmedLength(name) > 0
|
||||
&& TextUtils.getTrimmedLength(apn) > 0) {
|
||||
Preference pref = new Preference((Context) this);
|
||||
pref.setKey(mCursor.getString(ID_INDEX));
|
||||
pref.setTitle(name);
|
||||
pref.setSummary(apn);
|
||||
pref.setPersistent(false);
|
||||
apnList.addPreference(pref);
|
||||
}
|
||||
|
||||
mCursor.moveToNext();
|
||||
}
|
||||
}
|
||||
|
@@ -18,6 +18,7 @@ package com.android.settings;
|
||||
|
||||
import android.app.AlertDialog;
|
||||
import android.content.DialogInterface;
|
||||
import android.content.res.Configuration;
|
||||
import android.os.Bundle;
|
||||
import android.preference.CheckBoxPreference;
|
||||
import android.preference.Preference;
|
||||
@@ -29,6 +30,7 @@ public class ApplicationSettings extends PreferenceActivity implements
|
||||
DialogInterface.OnClickListener {
|
||||
|
||||
private static final String KEY_TOGGLE_INSTALL_APPLICATIONS = "toggle_install_applications";
|
||||
private static final String KEY_QUICK_LAUNCH = "quick_launch";
|
||||
|
||||
private CheckBoxPreference mToggleAppInstallation;
|
||||
|
||||
@@ -42,7 +44,12 @@ public class ApplicationSettings extends PreferenceActivity implements
|
||||
|
||||
mToggleAppInstallation = (CheckBoxPreference) findPreference(KEY_TOGGLE_INSTALL_APPLICATIONS);
|
||||
mToggleAppInstallation.setChecked(isNonMarketAppsAllowed());
|
||||
|
||||
|
||||
if (getResources().getConfiguration().keyboard == Configuration.KEYBOARD_NOKEYS) {
|
||||
// No hard keyboard, remove the setting for quick launch
|
||||
Preference quickLaunchSetting = findPreference(KEY_QUICK_LAUNCH);
|
||||
getPreferenceScreen().removePreference(quickLaunchSetting);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -68,13 +75,13 @@ public class ApplicationSettings extends PreferenceActivity implements
|
||||
|
||||
private void setNonMarketAppsAllowed(boolean enabled) {
|
||||
// Change the system setting
|
||||
Settings.System.putInt(getContentResolver(), Settings.System.INSTALL_NON_MARKET_APPS,
|
||||
Settings.Secure.putInt(getContentResolver(), Settings.Secure.INSTALL_NON_MARKET_APPS,
|
||||
enabled ? 1 : 0);
|
||||
}
|
||||
|
||||
private boolean isNonMarketAppsAllowed() {
|
||||
return Settings.System.getInt(getContentResolver(),
|
||||
Settings.System.INSTALL_NON_MARKET_APPS, 0) > 0;
|
||||
return Settings.Secure.getInt(getContentResolver(),
|
||||
Settings.Secure.INSTALL_NON_MARKET_APPS, 0) > 0;
|
||||
}
|
||||
|
||||
private void warnAppInstallation() {
|
||||
|
@@ -29,7 +29,7 @@ import android.os.Message;
|
||||
import android.os.RemoteException;
|
||||
import android.os.ServiceManager;
|
||||
import android.os.SystemClock;
|
||||
import android.pim.DateUtils;
|
||||
import android.text.format.DateUtils;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.android.internal.app.IBatteryStats;
|
||||
|
@@ -1,93 +0,0 @@
|
||||
/*
|
||||
* Copyright (C) 2007 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package com.android.settings;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
import android.view.KeyEvent;
|
||||
import android.view.View;
|
||||
import android.view.View.OnClickListener;
|
||||
import android.view.View.OnKeyListener;
|
||||
import android.widget.Button;
|
||||
import android.widget.EditText;
|
||||
import android.widget.TextView;
|
||||
|
||||
public class BluetoothDataEntry extends Activity implements OnKeyListener {
|
||||
|
||||
private Bundle extras;
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle icicle) {
|
||||
super.onCreate(icicle);
|
||||
|
||||
setContentView(R.layout.bluetooth_data_entry);
|
||||
|
||||
mDataLabel = (TextView)findViewById(R.id.dataLabel);
|
||||
mDataEntry = (EditText)findViewById(R.id.dataEntry);
|
||||
mConfirmButton = (Button)findViewById(R.id.confirmButton);
|
||||
mCancelButton = (Button)findViewById(R.id.cancelButton);
|
||||
|
||||
mDataEntry.setOnKeyListener(this);
|
||||
Intent intent = getIntent();
|
||||
String label = null;
|
||||
{
|
||||
String labelExtra = intent.getStringExtra("label");
|
||||
if (labelExtra != null) {
|
||||
label = labelExtra;
|
||||
}
|
||||
}
|
||||
extras = intent.getBundleExtra("extras");
|
||||
if (label != null && label.length() > 0) {
|
||||
mDataLabel.setText(label);
|
||||
}
|
||||
|
||||
mConfirmButton.setOnClickListener(new ConfirmButtonListener());
|
||||
mCancelButton.setOnClickListener(new CancelButtonListener());
|
||||
}
|
||||
|
||||
private class ConfirmButtonListener implements OnClickListener {
|
||||
public void onClick(View v) {
|
||||
activityResult(RESULT_OK, mDataEntry.getText().toString(), extras);
|
||||
}
|
||||
}
|
||||
|
||||
private class CancelButtonListener implements OnClickListener {
|
||||
public void onClick(View v) {
|
||||
activityResult(RESULT_CANCELED, null, null);
|
||||
}
|
||||
}
|
||||
|
||||
protected void activityResult(int result, String data, Bundle extras) {
|
||||
setResult(result, (new Intent()).setAction(data).putExtras(extras));
|
||||
finish();
|
||||
}
|
||||
|
||||
public boolean onKey(View v, int keyCode, KeyEvent event) {
|
||||
if (keyCode == KeyEvent.KEYCODE_DPAD_CENTER
|
||||
|| keyCode == KeyEvent.KEYCODE_ENTER) {
|
||||
activityResult(RESULT_OK, mDataEntry.getText().toString(), extras);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
protected TextView mDataLabel;
|
||||
protected EditText mDataEntry;
|
||||
protected Button mConfirmButton;
|
||||
protected Button mCancelButton;
|
||||
}
|
@@ -1,72 +0,0 @@
|
||||
package com.android.settings;
|
||||
|
||||
import android.content.Context;
|
||||
import android.preference.Preference;
|
||||
import android.util.AttributeSet;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.ImageView;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* This class extends Preference to display bluetooth status icons. One
|
||||
* icon specifies the connection/pairing status that is right-aligned.
|
||||
* An optional headset icon can be added to its left as well.
|
||||
*/
|
||||
public class BluetoothListItem extends Preference {
|
||||
|
||||
private boolean mIsHeadset;
|
||||
private int mWeight;
|
||||
|
||||
public BluetoothListItem(Context context, AttributeSet attrs) {
|
||||
super(context, attrs);
|
||||
setWidgetLayoutResource(R.layout.preference_widget_btdevice_status);
|
||||
}
|
||||
|
||||
private void updateIcons(View view) {
|
||||
ImageView headsetView = (ImageView) view.findViewById(R.id.device_headset);
|
||||
headsetView.setVisibility(mIsHeadset ? View.VISIBLE : View.GONE);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBindView(View view) {
|
||||
super.onBindView(view);
|
||||
updateIcons(view);
|
||||
}
|
||||
|
||||
/**
|
||||
* Set whether the device is of headset type
|
||||
* @param headset whether or not the headset icon should be shown
|
||||
*/
|
||||
public void setHeadset(boolean headset) {
|
||||
mIsHeadset = headset;
|
||||
notifyChanged();
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the weight for ordering by signal strength or importance
|
||||
* @param weight the ordering weight
|
||||
*/
|
||||
public void setWeight(int weight) {
|
||||
mWeight = weight;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the currently set ordering weight
|
||||
* @return the current ordering weight
|
||||
*/
|
||||
public int getWeight() {
|
||||
return mWeight;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int compareTo(Preference another) {
|
||||
int diff = ((BluetoothListItem)another).mWeight - mWeight;
|
||||
// Let the new one be after the old one, if they are the same weight
|
||||
// TODO: Implement a more reliable way to consistently order items of
|
||||
// the same weight
|
||||
if (diff == 0) diff = 1;
|
||||
return diff;
|
||||
}
|
||||
}
|
@@ -1,77 +0,0 @@
|
||||
/*
|
||||
* Copyright (C) 2007 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package com.android.settings;
|
||||
|
||||
import android.app.NotificationManager;
|
||||
import android.bluetooth.BluetoothDevice;
|
||||
import android.bluetooth.BluetoothIntent;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
import android.util.Log;
|
||||
|
||||
public class BluetoothPINEntry extends BluetoothDataEntry {
|
||||
private BluetoothDevice mBluetooth;
|
||||
private String mAddress;
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle icicle) {
|
||||
super.onCreate(icicle);
|
||||
|
||||
Intent intent = getIntent();
|
||||
if (!intent.getAction().equals(BluetoothIntent.PAIRING_REQUEST_ACTION))
|
||||
{
|
||||
Log.e(this.getClass().getName(),
|
||||
"Error: this activity may be started only with intent " +
|
||||
BluetoothIntent.PAIRING_REQUEST_ACTION);
|
||||
finish();
|
||||
}
|
||||
|
||||
// Cancel the notification, if any
|
||||
NotificationManager manager = (NotificationManager)
|
||||
getSystemService(Context.NOTIFICATION_SERVICE);
|
||||
manager.cancel(0xb100ceee);
|
||||
|
||||
mAddress = intent.getStringExtra(BluetoothIntent.ADDRESS);
|
||||
|
||||
mBluetooth = (BluetoothDevice)getSystemService(BLUETOOTH_SERVICE);
|
||||
|
||||
String remoteName = mBluetooth.getRemoteName(mAddress);
|
||||
if (remoteName == null) {
|
||||
remoteName = mAddress;
|
||||
}
|
||||
|
||||
mDataLabel.setText(getString(R.string.bluetooth_enter_pin_msg) + remoteName);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void activityResult(int result, String data, Bundle extras) {
|
||||
switch (result) {
|
||||
case RESULT_OK:
|
||||
byte[] pin = BluetoothDevice.convertPinToBytes(mDataEntry.getText().toString());
|
||||
if (pin == null) {
|
||||
return;
|
||||
}
|
||||
mBluetooth.setPin(mAddress, pin);
|
||||
break;
|
||||
case RESULT_CANCELED:
|
||||
mBluetooth.cancelPin(mAddress);
|
||||
break;
|
||||
}
|
||||
finish();
|
||||
}
|
||||
}
|
@@ -1,80 +0,0 @@
|
||||
/*
|
||||
* Copyright (C) 2008 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package com.android.settings;
|
||||
|
||||
import android.app.Notification;
|
||||
import android.app.NotificationManager;
|
||||
import android.app.PendingIntent;
|
||||
import android.bluetooth.BluetoothDevice;
|
||||
import android.bluetooth.BluetoothIntent;
|
||||
import android.content.BroadcastReceiver;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.res.Resources;
|
||||
|
||||
/**
|
||||
* This class handles the Bluetooth pairing PIN request from the bluetooth service
|
||||
* It checks if the BluetoothSettings activity is currently visible and lets that
|
||||
* activity handle the request. Otherwise it puts a Notification in the status bar,
|
||||
* which can be clicked to bring up the PIN entry dialog.
|
||||
*/
|
||||
public class BluetoothPinRequest extends BroadcastReceiver {
|
||||
|
||||
@Override
|
||||
public void onReceive(Context context, Intent intent) {
|
||||
if (intent.getAction().equals(BluetoothIntent.PAIRING_REQUEST_ACTION)) {
|
||||
if (BluetoothSettings.isRunning()) {
|
||||
// Let the BluetoothSettings activity handle it
|
||||
return;
|
||||
} else {
|
||||
Resources res = context.getResources();
|
||||
String address = intent.getStringExtra(BluetoothIntent.ADDRESS);
|
||||
Notification pair = new Notification(
|
||||
android.R.drawable.stat_sys_data_bluetooth,
|
||||
res.getString(R.string.bluetooth_notif_ticker),
|
||||
System.currentTimeMillis());
|
||||
|
||||
Intent pinIntent = new Intent();
|
||||
pinIntent.setClass(context, BluetoothPINEntry.class);
|
||||
pinIntent.putExtra(BluetoothIntent.ADDRESS, address);
|
||||
pinIntent.setAction(BluetoothIntent.PAIRING_REQUEST_ACTION);
|
||||
PendingIntent pending = PendingIntent.getActivity(context, 0,
|
||||
pinIntent, PendingIntent.FLAG_ONE_SHOT);
|
||||
|
||||
String name = intent.getStringExtra(BluetoothIntent.NAME);
|
||||
|
||||
if (name == null) {
|
||||
BluetoothDevice bluetooth =
|
||||
(BluetoothDevice)context.getSystemService(Context.BLUETOOTH_SERVICE);
|
||||
name = bluetooth.getRemoteName(address);
|
||||
if (name == null) {
|
||||
name = address;
|
||||
}
|
||||
}
|
||||
|
||||
pair.setLatestEventInfo(context,
|
||||
res.getString(R.string.bluetooth_notif_title),
|
||||
res.getString(R.string.bluetooth_notif_message) + name,
|
||||
pending);
|
||||
|
||||
NotificationManager manager = (NotificationManager)
|
||||
context.getSystemService(Context.NOTIFICATION_SERVICE);
|
||||
manager.notify(0xb100ceee, pair);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@@ -45,6 +45,17 @@ import java.util.List;
|
||||
*/
|
||||
public class ChooseLockPattern extends Activity implements View.OnClickListener{
|
||||
|
||||
/**
|
||||
* Used by the choose lock pattern wizard to indicate the wizard is
|
||||
* finished, and each activity in the wizard should finish.
|
||||
* <p>
|
||||
* Previously, each activity in the wizard would finish itself after
|
||||
* starting the next activity. However, this leads to broken 'Back'
|
||||
* behavior. So, now an activity does not finish itself until it gets this
|
||||
* result.
|
||||
*/
|
||||
static final int RESULT_FINISHED = RESULT_FIRST_USER;
|
||||
|
||||
// how long after a confirmation message is shown before moving on
|
||||
static final int INFORMATION_MSG_TIMEOUT_MS = 3000;
|
||||
|
||||
@@ -298,6 +309,8 @@ public class ChooseLockPattern extends Activity implements View.OnClickListener{
|
||||
mLockPatternView.clearPattern();
|
||||
updateStage(Stage.Introduction);
|
||||
} else if (mUiStage.leftMode == LeftButtonMode.Cancel) {
|
||||
// They are canceling the entire wizard
|
||||
setResult(RESULT_FINISHED);
|
||||
finish();
|
||||
} else {
|
||||
throw new IllegalStateException("left footer button pressed, but stage of " +
|
||||
@@ -368,6 +381,7 @@ public class ChooseLockPattern extends Activity implements View.OnClickListener{
|
||||
}
|
||||
|
||||
if (resultCode != Activity.RESULT_OK) {
|
||||
setResult(RESULT_FINISHED);
|
||||
finish();
|
||||
}
|
||||
updateStage(Stage.Introduction);
|
||||
@@ -475,6 +489,8 @@ public class ChooseLockPattern extends Activity implements View.OnClickListener{
|
||||
mLockPatternUtils.setLockPatternEnabled(true);
|
||||
mLockPatternUtils.setVisiblePatternEnabled(true);
|
||||
}
|
||||
|
||||
setResult(RESULT_FINISHED);
|
||||
finish();
|
||||
}
|
||||
}
|
||||
|
@@ -25,6 +25,7 @@ import android.view.View;
|
||||
import android.widget.ImageView;
|
||||
|
||||
public class ChooseLockPatternExample extends Activity implements View.OnClickListener {
|
||||
private static final int REQUESTCODE_CHOOSE = 1;
|
||||
private static final long START_DELAY = 1000;
|
||||
protected static final String TAG = "Settings";
|
||||
private View mNextButton;
|
||||
@@ -59,15 +60,24 @@ public class ChooseLockPatternExample extends Activity implements View.OnClickLi
|
||||
|
||||
public void onClick(View v) {
|
||||
if (v == mSkipButton) {
|
||||
// Canceling, so finish all
|
||||
setResult(ChooseLockPattern.RESULT_FINISHED);
|
||||
finish();
|
||||
} else if (v == mNextButton) {
|
||||
stopAnimation(mAnimation);
|
||||
Intent intent = new Intent(this, ChooseLockPattern.class);
|
||||
startActivity(intent);
|
||||
startActivityForResult(intent, REQUESTCODE_CHOOSE);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
|
||||
if (requestCode == REQUESTCODE_CHOOSE && resultCode == ChooseLockPattern.RESULT_FINISHED) {
|
||||
setResult(resultCode);
|
||||
finish();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private void initViews() {
|
||||
mNextButton = findViewById(R.id.next_button);
|
||||
mNextButton.setOnClickListener(this);
|
||||
|
@@ -24,8 +24,10 @@ import android.os.Bundle;
|
||||
import android.view.View;
|
||||
|
||||
public class ChooseLockPatternTutorial extends Activity implements View.OnClickListener {
|
||||
protected View mNextButton;
|
||||
protected View mSkipButton;
|
||||
private static final int REQUESTCODE_EXAMPLE = 1;
|
||||
|
||||
private View mNextButton;
|
||||
private View mSkipButton;
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
@@ -52,11 +54,22 @@ public class ChooseLockPatternTutorial extends Activity implements View.OnClickL
|
||||
|
||||
public void onClick(View v) {
|
||||
if (v == mSkipButton) {
|
||||
// Canceling, so finish all
|
||||
setResult(ChooseLockPattern.RESULT_FINISHED);
|
||||
finish();
|
||||
} else if (v == mNextButton) {
|
||||
startActivity(new Intent(this, ChooseLockPatternExample.class));
|
||||
startActivityForResult(new Intent(this, ChooseLockPatternExample.class),
|
||||
REQUESTCODE_EXAMPLE);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
|
||||
if (requestCode == REQUESTCODE_EXAMPLE && resultCode == ChooseLockPattern.RESULT_FINISHED) {
|
||||
setResult(resultCode);
|
||||
finish();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
@@ -27,7 +27,6 @@ import android.content.SharedPreferences;
|
||||
import android.content.SharedPreferences.OnSharedPreferenceChangeListener;
|
||||
import android.os.Bundle;
|
||||
import android.os.SystemClock;
|
||||
import android.pim.DateFormat;
|
||||
import android.preference.CheckBoxPreference;
|
||||
import android.preference.ListPreference;
|
||||
import android.preference.Preference;
|
||||
@@ -35,6 +34,7 @@ import android.preference.PreferenceActivity;
|
||||
import android.preference.PreferenceScreen;
|
||||
import android.provider.Settings;
|
||||
import android.provider.Settings.SettingNotFoundException;
|
||||
import android.text.format.DateFormat;
|
||||
import android.widget.DatePicker;
|
||||
import android.widget.TimePicker;
|
||||
|
||||
@@ -281,9 +281,7 @@ public class DateTimeSettings
|
||||
/* Get & Set values from the system settings */
|
||||
|
||||
private boolean is24Hour() {
|
||||
String setting = Settings.System.getString(getContentResolver(),
|
||||
Settings.System.TIME_12_24);
|
||||
return HOURS_24.equals(setting);
|
||||
return DateFormat.is24HourFormat(this);
|
||||
}
|
||||
|
||||
private void set24Hour(boolean is24Hour) {
|
||||
|
@@ -16,6 +16,7 @@
|
||||
|
||||
package com.android.settings;
|
||||
|
||||
import android.os.BatteryManager;
|
||||
import android.os.Bundle;
|
||||
import android.os.SystemProperties;
|
||||
import android.preference.Preference;
|
||||
@@ -32,9 +33,11 @@ public class DevelopmentSettings extends PreferenceActivity {
|
||||
|
||||
private static final String ENABLE_ADB = "enable_adb";
|
||||
private static final String KEEP_SCREEN_ON = "keep_screen_on";
|
||||
private static final String ALLOW_MOCK_LOCATION = "allow_mock_location";
|
||||
|
||||
private CheckBoxPreference mEnableAdb;
|
||||
private CheckBoxPreference mKeepScreenOn;
|
||||
private CheckBoxPreference mAllowMockLocation;
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle icicle) {
|
||||
@@ -44,16 +47,19 @@ public class DevelopmentSettings extends PreferenceActivity {
|
||||
|
||||
mEnableAdb = (CheckBoxPreference) findPreference(ENABLE_ADB);
|
||||
mKeepScreenOn = (CheckBoxPreference) findPreference(KEEP_SCREEN_ON);
|
||||
mAllowMockLocation = (CheckBoxPreference) findPreference(ALLOW_MOCK_LOCATION);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onResume() {
|
||||
super.onResume();
|
||||
|
||||
mEnableAdb.setChecked(Settings.System.getInt(getContentResolver(),
|
||||
Settings.System.ADB_ENABLED, 0) != 0);
|
||||
mEnableAdb.setChecked(Settings.Secure.getInt(getContentResolver(),
|
||||
Settings.Secure.ADB_ENABLED, 0) != 0);
|
||||
mKeepScreenOn.setChecked(Settings.System.getInt(getContentResolver(),
|
||||
Settings.System.STAY_ON_WHILE_PLUGGED_IN, 0) != 0);
|
||||
mAllowMockLocation.setChecked(Settings.Secure.getInt(getContentResolver(),
|
||||
Settings.Secure.ALLOW_MOCK_LOCATION, 0) != 0);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -66,11 +72,15 @@ public class DevelopmentSettings extends PreferenceActivity {
|
||||
}
|
||||
|
||||
if (preference == mEnableAdb) {
|
||||
Settings.System.putInt(getContentResolver(), Settings.System.ADB_ENABLED,
|
||||
Settings.Secure.putInt(getContentResolver(), Settings.Secure.ADB_ENABLED,
|
||||
mEnableAdb.isChecked() ? 1 : 0);
|
||||
} else if (preference == mKeepScreenOn) {
|
||||
Settings.System.putInt(getContentResolver(), Settings.System.STAY_ON_WHILE_PLUGGED_IN,
|
||||
mKeepScreenOn.isChecked() ? 1 : 0);
|
||||
mKeepScreenOn.isChecked() ?
|
||||
(BatteryManager.BATTERY_PLUGGED_AC | BatteryManager.BATTERY_PLUGGED_USB) : 0);
|
||||
} else if (preference == mAllowMockLocation) {
|
||||
Settings.Secure.putInt(getContentResolver(), Settings.Secure.ALLOW_MOCK_LOCATION,
|
||||
mAllowMockLocation.isChecked() ? 1 : 0);
|
||||
}
|
||||
|
||||
return false;
|
||||
|
@@ -46,6 +46,7 @@ public class DeviceInfoSettings extends PreferenceActivity {
|
||||
private static final String KEY_TERMS = "terms";
|
||||
private static final String KEY_LICENSE = "license";
|
||||
private static final String KEY_COPYRIGHT = "copyright";
|
||||
private static final String KEY_SYSTEM_UPDATE_SETTINGS = "system_update_settings";
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle icicle) {
|
||||
@@ -56,7 +57,7 @@ public class DeviceInfoSettings extends PreferenceActivity {
|
||||
setSummary("firmware_version", "ro.build.version.release");
|
||||
setSummary("baseband_version", "gsm.version.baseband");
|
||||
setSummary("device_model", "ro.product.model");
|
||||
setSummary("build_number", "ro.build.description");
|
||||
setSummary("build_number", "ro.build.version.incremental");
|
||||
findPreference("kernel_version").setSummary(getFormattedKernelVersion());
|
||||
|
||||
/*
|
||||
@@ -74,6 +75,8 @@ public class DeviceInfoSettings extends PreferenceActivity {
|
||||
Utils.UPDATE_PREFERENCE_FLAG_SET_TITLE_TO_MATCHING_ACTIVITY);
|
||||
Utils.updatePreferenceToSpecificActivityOrRemove(this, parentPreference, KEY_TEAM,
|
||||
Utils.UPDATE_PREFERENCE_FLAG_SET_TITLE_TO_MATCHING_ACTIVITY);
|
||||
Utils.updatePreferenceToSpecificActivityOrRemove(this, parentPreference, KEY_SYSTEM_UPDATE_SETTINGS,
|
||||
Utils.UPDATE_PREFERENCE_FLAG_SET_TITLE_TO_MATCHING_ACTIVITY);
|
||||
}
|
||||
|
||||
private void setSummary(String preference, String property) {
|
||||
|
191
src/com/android/settings/InputMethodsSettings.java
Normal file
@@ -0,0 +1,191 @@
|
||||
/*
|
||||
* Copyright (C) 2008 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
|
||||
* use this file except in compliance with the License. You may obtain a copy of
|
||||
* the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing permissions and limitations under
|
||||
* the License.
|
||||
*/
|
||||
|
||||
package com.android.settings;
|
||||
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
import android.os.RemoteException;
|
||||
import android.os.SystemProperties;
|
||||
import android.preference.Preference;
|
||||
import android.preference.PreferenceActivity;
|
||||
import android.preference.PreferenceScreen;
|
||||
import android.preference.CheckBoxPreference;
|
||||
import android.provider.Settings;
|
||||
import android.text.TextUtils;
|
||||
import android.view.inputmethod.InputMethodInfo;
|
||||
import android.view.inputmethod.InputMethodManager;
|
||||
|
||||
/*
|
||||
* Displays preferences for input methods.
|
||||
*/
|
||||
public class InputMethodsSettings extends PreferenceActivity {
|
||||
private List<InputMethodInfo> mInputMethodProperties;
|
||||
|
||||
final TextUtils.SimpleStringSplitter mStringColonSplitter
|
||||
= new TextUtils.SimpleStringSplitter(':');
|
||||
|
||||
private String mLastInputMethodId;
|
||||
private String mLastTickedInputMethodId;
|
||||
|
||||
static public String getInputMethodIdFromKey(String key) {
|
||||
return key;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle icicle) {
|
||||
super.onCreate(icicle);
|
||||
|
||||
addPreferencesFromResource(R.xml.input_methods_prefs);
|
||||
|
||||
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
|
||||
|
||||
mInputMethodProperties = imm.getInputMethodList();
|
||||
|
||||
mLastInputMethodId = Settings.Secure.getString(getContentResolver(),
|
||||
Settings.Secure.DEFAULT_INPUT_METHOD);
|
||||
|
||||
int N = (mInputMethodProperties == null ? 0 : mInputMethodProperties
|
||||
.size());
|
||||
for (int i = 0; i < N; ++i) {
|
||||
InputMethodInfo property = mInputMethodProperties.get(i);
|
||||
String prefKey = property.getId();
|
||||
|
||||
CharSequence label = property.loadLabel(getPackageManager());
|
||||
|
||||
// Add a check box.
|
||||
CheckBoxPreference chkbxPref = new CheckBoxPreference(this);
|
||||
chkbxPref.setKey(prefKey);
|
||||
chkbxPref.setTitle(label);
|
||||
getPreferenceScreen().addPreference(chkbxPref);
|
||||
|
||||
// If setting activity is available, add a setting screen entry.
|
||||
if (null != property.getSettingsActivity()) {
|
||||
PreferenceScreen prefScreen = new PreferenceScreen(this, null);
|
||||
prefScreen.setKey(property.getSettingsActivity());
|
||||
// XXX TODO: handle localization properly.
|
||||
prefScreen.setTitle(label + " settings");
|
||||
getPreferenceScreen().addPreference(prefScreen);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onResume() {
|
||||
super.onResume();
|
||||
|
||||
final HashSet<String> enabled = new HashSet<String>();
|
||||
String enabledStr = Settings.Secure.getString(getContentResolver(),
|
||||
Settings.Secure.ENABLED_INPUT_METHODS);
|
||||
if (enabledStr != null) {
|
||||
final TextUtils.SimpleStringSplitter splitter = mStringColonSplitter;
|
||||
splitter.setString(enabledStr);
|
||||
while (splitter.hasNext()) {
|
||||
enabled.add(splitter.next());
|
||||
}
|
||||
}
|
||||
|
||||
// Update the statuses of the Check Boxes.
|
||||
int N = mInputMethodProperties.size();
|
||||
for (int i = 0; i < N; ++i) {
|
||||
final String id = mInputMethodProperties.get(i).getId();
|
||||
CheckBoxPreference pref = (CheckBoxPreference) findPreference(mInputMethodProperties
|
||||
.get(i).getId());
|
||||
pref.setChecked(enabled.contains(id));
|
||||
}
|
||||
mLastTickedInputMethodId = null;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onPause() {
|
||||
super.onPause();
|
||||
|
||||
StringBuilder builder = new StringBuilder(256);
|
||||
|
||||
boolean haveLastInputMethod = false;
|
||||
|
||||
int firstEnabled = -1;
|
||||
int N = mInputMethodProperties.size();
|
||||
for (int i = 0; i < N; ++i) {
|
||||
final String id = mInputMethodProperties.get(i).getId();
|
||||
CheckBoxPreference pref = (CheckBoxPreference) findPreference(id);
|
||||
boolean hasIt = id.equals(mLastInputMethodId);
|
||||
if (pref.isChecked()) {
|
||||
if (builder.length() > 0) builder.append(':');
|
||||
builder.append(id);
|
||||
if (firstEnabled < 0) {
|
||||
firstEnabled = i;
|
||||
}
|
||||
if (hasIt) haveLastInputMethod = true;
|
||||
} else if (hasIt) {
|
||||
mLastInputMethodId = mLastTickedInputMethodId;
|
||||
}
|
||||
}
|
||||
|
||||
// If the last input method is unset, set it as the first enabled one.
|
||||
if (null == mLastInputMethodId || "".equals(mLastInputMethodId)) {
|
||||
if (firstEnabled >= 0) {
|
||||
mLastInputMethodId = mInputMethodProperties.get(firstEnabled).getId();
|
||||
} else {
|
||||
mLastInputMethodId = null;
|
||||
}
|
||||
}
|
||||
|
||||
Settings.Secure.putString(getContentResolver(),
|
||||
Settings.Secure.ENABLED_INPUT_METHODS, builder.toString());
|
||||
Settings.Secure.putString(getContentResolver(),
|
||||
Settings.Secure.DEFAULT_INPUT_METHOD, mLastInputMethodId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen,
|
||||
Preference preference) {
|
||||
|
||||
// Those monkeys kept committing suicide, so we add this property
|
||||
// to disable this functionality
|
||||
if (!TextUtils.isEmpty(SystemProperties.get("ro.monkey"))) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (preference instanceof CheckBoxPreference) {
|
||||
CheckBoxPreference chkPref = (CheckBoxPreference) preference;
|
||||
String id = getInputMethodIdFromKey(chkPref.getKey());
|
||||
if (chkPref.isChecked()) {
|
||||
mLastTickedInputMethodId = id;
|
||||
} else if (id.equals(mLastTickedInputMethodId)) {
|
||||
mLastTickedInputMethodId = null;
|
||||
}
|
||||
} else if (preference instanceof PreferenceScreen) {
|
||||
if (preference.getIntent() == null) {
|
||||
PreferenceScreen pref = (PreferenceScreen) preference;
|
||||
String activityName = pref.getKey();
|
||||
String packageName = activityName.substring(0, activityName
|
||||
.lastIndexOf("."));
|
||||
if (activityName.length() > 0) {
|
||||
Intent i = new Intent(Intent.ACTION_MAIN);
|
||||
i.setClassName(packageName, activityName);
|
||||
startActivity(i);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
@@ -29,7 +29,6 @@ import android.content.IntentFilter;
|
||||
import android.content.pm.ApplicationInfo;
|
||||
import android.content.pm.IPackageDataObserver;
|
||||
import android.content.pm.IPackageStatsObserver;
|
||||
import android.content.pm.PackageInfo;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.content.pm.PackageStats;
|
||||
import android.content.pm.PackageManager.NameNotFoundException;
|
||||
@@ -37,6 +36,7 @@ import android.net.Uri;
|
||||
import android.os.Bundle;
|
||||
import android.os.Handler;
|
||||
import android.os.Message;
|
||||
import android.text.format.Formatter;
|
||||
import android.util.Config;
|
||||
import android.util.Log;
|
||||
import java.util.ArrayList;
|
||||
@@ -50,33 +50,62 @@ import android.widget.LinearLayout;
|
||||
import android.widget.TextView;
|
||||
|
||||
/**
|
||||
* Activity to display application information from Settings
|
||||
*
|
||||
* Activity to display application information from Settings. This activity presents
|
||||
* extended information associated with a package like code, data, total size, permissions
|
||||
* used by the application and also the set of default launchable activities.
|
||||
* For system applications, an option to clear user data is displayed only if data size is > 0.
|
||||
* System applications that do not want clear user data do not have this option.
|
||||
* For non-system applications, there is no option to clear data. Instead there is an option to
|
||||
* uninstall the application.
|
||||
*/
|
||||
public class InstalledAppDetails extends Activity implements View.OnClickListener, DialogInterface.OnClickListener {
|
||||
private static final String TAG="InstalledAppDetails";
|
||||
private static final int _UNKNOWN_APP=R.string.unknown;
|
||||
//wait times used for the async package manager api
|
||||
private ApplicationInfo mAppInfo;
|
||||
private Button mUninstallButton;
|
||||
private Button mAppButton;
|
||||
private Button mActivitiesButton;
|
||||
private boolean mSysPackage;
|
||||
private boolean localLOGV=Config.LOGV || true;
|
||||
private boolean mCanUninstall;
|
||||
private boolean localLOGV=Config.LOGV || false;
|
||||
private TextView mTotalSize;
|
||||
private TextView mAppSize;
|
||||
private TextView mDataSize;
|
||||
private PkgSizeObserver mSizeObserver;
|
||||
private ClearUserDataObserver mClearDataObserver;
|
||||
// Views related to cache info
|
||||
private View mCachePanel;
|
||||
private TextView mCacheSize;
|
||||
private Button mClearCacheButton;
|
||||
private ClearCacheObserver mClearCacheObserver;
|
||||
|
||||
PackageStats mSizeInfo;
|
||||
private Button mManageSpaceButton;
|
||||
private PackageManager mPm;
|
||||
private String mBStr, mKbStr, mMbStr;
|
||||
|
||||
//internal constants used in Handler
|
||||
private static final int CLEAR_USER_DATA = 1;
|
||||
private static final int OP_SUCCESSFUL = 1;
|
||||
private static final int OP_FAILED = 2;
|
||||
private static final int CLEAR_USER_DATA = 1;
|
||||
private static final int GET_PKG_SIZE = 2;
|
||||
private static final int CLEAR_CACHE = 3;
|
||||
private static final String ATTR_PACKAGE_STATS="PackageStats";
|
||||
|
||||
// invalid size value used initially and also when size retrieval through PackageManager
|
||||
// fails for whatever reason
|
||||
private static final int SIZE_INVALID = -1;
|
||||
|
||||
// Resource strings
|
||||
private CharSequence mInvalidSizeStr;
|
||||
private CharSequence mComputingStr;
|
||||
private CharSequence mAppButtonText;
|
||||
|
||||
// Possible btn states
|
||||
private enum AppButtonStates {
|
||||
CLEAR_DATA,
|
||||
UNINSTALL,
|
||||
NONE
|
||||
}
|
||||
private AppButtonStates mAppButtonState;
|
||||
|
||||
private Handler mHandler = new Handler() {
|
||||
public void handleMessage(Message msg) {
|
||||
switch (msg.what) {
|
||||
@@ -86,17 +115,22 @@ public class InstalledAppDetails extends Activity implements View.OnClickListene
|
||||
case GET_PKG_SIZE:
|
||||
refreshSizeInfo(msg);
|
||||
break;
|
||||
case CLEAR_CACHE:
|
||||
// Refresh size info
|
||||
mPm.getPackageSizeInfo(mAppInfo.packageName, mSizeObserver);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
private boolean isSystemPackage() {
|
||||
if ((mAppInfo.flags&ApplicationInfo.FLAG_SYSTEM) != 0) {
|
||||
return true;
|
||||
private boolean isUninstallable() {
|
||||
if (((mAppInfo.flags&ApplicationInfo.FLAG_SYSTEM) != 0) &&
|
||||
((mAppInfo.flags & ApplicationInfo.FLAG_UPDATED_SYSTEM_APP) == 0)) {
|
||||
return false;
|
||||
}
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
class ClearUserDataObserver extends IPackageDataObserver.Stub {
|
||||
@@ -119,28 +153,46 @@ public class InstalledAppDetails extends Activity implements View.OnClickListene
|
||||
}
|
||||
}
|
||||
|
||||
class ClearCacheObserver extends IPackageDataObserver.Stub {
|
||||
public void onRemoveCompleted(final String packageName, final boolean succeeded) {
|
||||
final Message msg = mHandler.obtainMessage(CLEAR_CACHE);
|
||||
msg.arg1 = succeeded?OP_SUCCESSFUL:OP_FAILED;
|
||||
mHandler.sendMessage(msg);
|
||||
}
|
||||
}
|
||||
|
||||
private String getSizeStr(long size) {
|
||||
String retStr = "";
|
||||
if(size < 1024) {
|
||||
return String.valueOf(size)+mBStr;
|
||||
if (size == SIZE_INVALID) {
|
||||
return mInvalidSizeStr.toString();
|
||||
}
|
||||
long kb, mb, rem;
|
||||
kb = size >> 10;
|
||||
rem = size - (kb << 10);
|
||||
if(kb < 1024) {
|
||||
if(rem > 512) {
|
||||
kb++;
|
||||
return Formatter.formatFileSize(this, size);
|
||||
}
|
||||
|
||||
private void setAppBtnState() {
|
||||
boolean visible = false;
|
||||
if(mCanUninstall) {
|
||||
//app can clear user data
|
||||
if((mAppInfo.flags & ApplicationInfo.FLAG_ALLOW_CLEAR_USER_DATA)
|
||||
== ApplicationInfo.FLAG_ALLOW_CLEAR_USER_DATA) {
|
||||
mAppButtonText = getText(R.string.clear_user_data_text);
|
||||
mAppButtonState = AppButtonStates.CLEAR_DATA;
|
||||
visible = true;
|
||||
} else {
|
||||
//hide button if diableClearUserData is set
|
||||
visible = false;
|
||||
mAppButtonState = AppButtonStates.NONE;
|
||||
}
|
||||
retStr += String.valueOf(kb)+mKbStr;
|
||||
return retStr;
|
||||
} else {
|
||||
visible = true;
|
||||
mAppButtonState = AppButtonStates.UNINSTALL;
|
||||
mAppButtonText = getText(R.string.uninstall_text);
|
||||
}
|
||||
if(visible) {
|
||||
mAppButton.setText(mAppButtonText);
|
||||
mAppButton.setVisibility(View.VISIBLE);
|
||||
} else {
|
||||
mAppButton.setVisibility(View.GONE);
|
||||
}
|
||||
mb = kb >> 10;
|
||||
if(kb >= 512) {
|
||||
//round off
|
||||
mb++;
|
||||
}
|
||||
retStr += String.valueOf(mb)+ mMbStr;
|
||||
return retStr;
|
||||
}
|
||||
|
||||
/** Called when the activity is first created. */
|
||||
@@ -152,45 +204,25 @@ public class InstalledAppDetails extends Activity implements View.OnClickListene
|
||||
//get application's name from intent
|
||||
Intent intent = getIntent();
|
||||
final String packageName = intent.getStringExtra(ManageApplications.APP_PKG_NAME);
|
||||
mSizeInfo = intent.getParcelableExtra(ManageApplications.APP_PKG_SIZE);
|
||||
long total = -1;
|
||||
long code = -1;
|
||||
long data = -1;
|
||||
if(mSizeInfo != null) {
|
||||
total = mSizeInfo.cacheSize+mSizeInfo.codeSize+mSizeInfo.dataSize;
|
||||
code = mSizeInfo.codeSize;
|
||||
data = mSizeInfo.dataSize+mSizeInfo.cacheSize;
|
||||
}
|
||||
String unknownStr = getString(_UNKNOWN_APP);
|
||||
mBStr = getString(R.string.b_text);
|
||||
mKbStr = getString(R.string.kb_text);
|
||||
mMbStr = getString(R.string.mb_text);
|
||||
String totalSizeStr = unknownStr;
|
||||
if(total != -1) {
|
||||
totalSizeStr = getSizeStr(total);
|
||||
}
|
||||
String appSizeStr = unknownStr;
|
||||
if(code != -1) {
|
||||
appSizeStr = getSizeStr(code);
|
||||
}
|
||||
String dataSizeStr = unknownStr;
|
||||
if(data != -1) {
|
||||
dataSizeStr = getSizeStr(data);
|
||||
}
|
||||
if(localLOGV) Log.i(TAG, "packageName:"+packageName+", total="+total+
|
||||
"code="+code+", data="+data);
|
||||
mComputingStr = getText(R.string.computing_size);
|
||||
// Try retrieving package stats again
|
||||
CharSequence totalSizeStr, appSizeStr, dataSizeStr;
|
||||
totalSizeStr = appSizeStr = dataSizeStr = mComputingStr;
|
||||
if(localLOGV) Log.i(TAG, "Have to compute package sizes");
|
||||
mSizeObserver = new PkgSizeObserver();
|
||||
mPm.getPackageSizeInfo(packageName, mSizeObserver);
|
||||
|
||||
try {
|
||||
mAppInfo = mPm.getApplicationInfo(packageName, 0);
|
||||
mAppInfo = mPm.getApplicationInfo(packageName,
|
||||
PackageManager.GET_UNINSTALLED_PACKAGES);
|
||||
} catch (NameNotFoundException e) {
|
||||
Throwable th = e.fillInStackTrace();
|
||||
Log.e(TAG, "Exception when retrieving package:"+packageName, e);
|
||||
displayErrorDialog(R.string.app_not_found_dlg_text, true, true);
|
||||
}
|
||||
setContentView(R.layout.installed_app_details);
|
||||
((ImageView)findViewById(R.id.app_icon)).setImageDrawable(mPm.
|
||||
getApplicationIcon(mAppInfo));
|
||||
setContentView(R.layout.installed_app_details);
|
||||
((ImageView)findViewById(R.id.app_icon)).setImageDrawable(mAppInfo.loadIcon(mPm));
|
||||
//set application name TODO version
|
||||
CharSequence appName = mPm.getApplicationLabel(mAppInfo);
|
||||
CharSequence appName = mAppInfo.loadLabel(mPm);
|
||||
if(appName == null) {
|
||||
appName = getString(_UNKNOWN_APP);
|
||||
}
|
||||
@@ -208,33 +240,22 @@ public class InstalledAppDetails extends Activity implements View.OnClickListene
|
||||
mDataSize = (TextView)findViewById(R.id.data_size_text);
|
||||
mDataSize.setText(dataSizeStr);
|
||||
|
||||
mUninstallButton = ((Button)findViewById(R.id.uninstall_button));
|
||||
mAppButton = ((Button)findViewById(R.id.uninstall_button));
|
||||
//determine if app is a system app
|
||||
mSysPackage = isSystemPackage();
|
||||
if(localLOGV) Log.i(TAG, "Is systemPackage "+mSysPackage);
|
||||
int btnText;
|
||||
boolean btnClickable = true;
|
||||
|
||||
if(mSysPackage) {
|
||||
//app can clear user data
|
||||
if((mAppInfo.flags & ApplicationInfo.FLAG_ALLOW_CLEAR_USER_DATA)
|
||||
== ApplicationInfo.FLAG_ALLOW_CLEAR_USER_DATA) {
|
||||
mUninstallButton.setText(R.string.clear_user_data_text);
|
||||
//disable button if data is 0
|
||||
if(data == 0) {
|
||||
mUninstallButton.setEnabled(false);
|
||||
} else {
|
||||
//enable button
|
||||
mUninstallButton.setOnClickListener(this);
|
||||
}
|
||||
} else {
|
||||
//hide button if diableClearUserData is set
|
||||
mUninstallButton.setVisibility(View.GONE);
|
||||
}
|
||||
} else {
|
||||
mUninstallButton.setText(R.string.uninstall_text);
|
||||
mUninstallButton.setOnClickListener(this);
|
||||
mCanUninstall = !isUninstallable();
|
||||
if(localLOGV) Log.i(TAG, "Is systemPackage "+mCanUninstall);
|
||||
setAppBtnState();
|
||||
mManageSpaceButton = (Button)findViewById(R.id.manage_space_button);
|
||||
if(mAppInfo.manageSpaceActivityName != null) {
|
||||
mManageSpaceButton.setVisibility(View.VISIBLE);
|
||||
mManageSpaceButton.setOnClickListener(this);
|
||||
}
|
||||
|
||||
// Cache section
|
||||
mCachePanel = findViewById(R.id.cache_panel);
|
||||
mCacheSize = (TextView) findViewById(R.id.cache_size_text);
|
||||
mClearCacheButton = (Button) findViewById(R.id.clear_cache_button);
|
||||
|
||||
//clear activities
|
||||
mActivitiesButton = (Button)findViewById(R.id.clear_activities_button);
|
||||
List<ComponentName> prefActList = new ArrayList<ComponentName>();
|
||||
@@ -251,23 +272,19 @@ public class InstalledAppDetails extends Activity implements View.OnClickListene
|
||||
autoLaunchView.setText(R.string.auto_launch_enable_text);
|
||||
mActivitiesButton.setOnClickListener(this);
|
||||
}
|
||||
mManageSpaceButton = (Button)findViewById(R.id.manage_space_button);
|
||||
if(mAppInfo.manageSpaceActivityName != null) {
|
||||
mManageSpaceButton.setVisibility(View.VISIBLE);
|
||||
mManageSpaceButton.setOnClickListener(this);
|
||||
|
||||
// security permissions section
|
||||
LinearLayout permsView = (LinearLayout) findViewById(R.id.permissions_section);
|
||||
AppSecurityPermissions asp = new AppSecurityPermissions(this, packageName);
|
||||
if(asp.getPermissionCount() > 0) {
|
||||
permsView.setVisibility(View.VISIBLE);
|
||||
// Make the security sections header visible
|
||||
LinearLayout securityList = (LinearLayout) permsView.findViewById(
|
||||
R.id.security_settings_list);
|
||||
securityList.addView(asp.getPermissionsView());
|
||||
} else {
|
||||
permsView.setVisibility(View.GONE);
|
||||
}
|
||||
//security permissions section
|
||||
AppSecurityPermissions asp = new AppSecurityPermissions(this);
|
||||
PackageInfo pkgInfo;
|
||||
try {
|
||||
pkgInfo = mPm.getPackageInfo(packageName, PackageManager.GET_PERMISSIONS);
|
||||
} catch (NameNotFoundException e) {
|
||||
Log.w(TAG, "Couldnt retrieve permissions for package:"+packageName);
|
||||
return;
|
||||
}
|
||||
asp.setSecurityPermissionsView(pkgInfo);
|
||||
LinearLayout securityList = (LinearLayout) findViewById(R.id.security_settings_list);
|
||||
securityList.addView(asp.getPermissionsView());
|
||||
}
|
||||
|
||||
private void displayErrorDialog(int msgId, final boolean finish, final boolean changed) {
|
||||
@@ -292,7 +309,7 @@ public class InstalledAppDetails extends Activity implements View.OnClickListene
|
||||
Intent intent = new Intent();
|
||||
intent.putExtra(ManageApplications.APP_CHG, appChanged);
|
||||
setResult(ManageApplications.RESULT_OK, intent);
|
||||
mUninstallButton.setEnabled(false);
|
||||
mAppButton.setEnabled(false);
|
||||
if(finish) {
|
||||
finish();
|
||||
}
|
||||
@@ -305,29 +322,53 @@ public class InstalledAppDetails extends Activity implements View.OnClickListene
|
||||
*/
|
||||
private void refreshSizeInfo(Message msg) {
|
||||
boolean changed = false;
|
||||
Intent intent = new Intent();
|
||||
PackageStats newPs = msg.getData().getParcelable(ATTR_PACKAGE_STATS);
|
||||
long newTot = newPs.cacheSize+newPs.codeSize+newPs.dataSize;
|
||||
long oldTot = mSizeInfo.cacheSize+mSizeInfo.codeSize+mSizeInfo.dataSize;
|
||||
if(newTot != oldTot) {
|
||||
mTotalSize.setText(getSizeStr(newTot));
|
||||
changed = true;
|
||||
}
|
||||
if(newPs.codeSize != mSizeInfo.codeSize) {
|
||||
mAppSize.setText(getSizeStr(newPs.codeSize));
|
||||
changed = true;
|
||||
}
|
||||
if((newPs.dataSize != mSizeInfo.dataSize) || (newPs.cacheSize != mSizeInfo.cacheSize)) {
|
||||
mDataSize.setText(getSizeStr(newPs.dataSize+newPs.cacheSize));
|
||||
changed = true;
|
||||
}
|
||||
if(changed) {
|
||||
mUninstallButton.setText(R.string.clear_user_data_text);
|
||||
if(mSizeInfo == null) {
|
||||
mSizeInfo = newPs;
|
||||
intent.putExtra(ManageApplications.APP_PKG_SIZE, mSizeInfo);
|
||||
mTotalSize.setText(getSizeStr(newTot));
|
||||
mAppSize.setText(getSizeStr(newPs.codeSize));
|
||||
mDataSize.setText(getSizeStr(newPs.dataSize+newPs.cacheSize));
|
||||
} else {
|
||||
long oldTot = mSizeInfo.cacheSize+mSizeInfo.codeSize+mSizeInfo.dataSize;
|
||||
if(newTot != oldTot) {
|
||||
mTotalSize.setText(getSizeStr(newTot));
|
||||
changed = true;
|
||||
}
|
||||
if(newPs.codeSize != mSizeInfo.codeSize) {
|
||||
mAppSize.setText(getSizeStr(newPs.codeSize));
|
||||
changed = true;
|
||||
}
|
||||
if((newPs.dataSize != mSizeInfo.dataSize) || (newPs.cacheSize != mSizeInfo.cacheSize)) {
|
||||
mDataSize.setText(getSizeStr(newPs.dataSize+newPs.cacheSize));
|
||||
}
|
||||
if(changed) {
|
||||
mSizeInfo = newPs;
|
||||
}
|
||||
}
|
||||
|
||||
long data = mSizeInfo.dataSize+mSizeInfo.cacheSize;
|
||||
// Disable button if data is 0
|
||||
if(mAppButtonState != AppButtonStates.NONE){
|
||||
mAppButton.setText(mAppButtonText);
|
||||
if((mAppButtonState == AppButtonStates.CLEAR_DATA) && (data == 0)) {
|
||||
mAppButton.setEnabled(false);
|
||||
} else {
|
||||
mAppButton.setEnabled(true);
|
||||
mAppButton.setOnClickListener(this);
|
||||
}
|
||||
}
|
||||
refreshCacheInfo(newPs.cacheSize);
|
||||
}
|
||||
|
||||
private void refreshCacheInfo(long cacheSize) {
|
||||
// Set cache info
|
||||
mCacheSize.setText(getSizeStr(cacheSize));
|
||||
if (cacheSize <= 0) {
|
||||
mClearCacheButton.setEnabled(false);
|
||||
} else {
|
||||
mClearCacheButton.setOnClickListener(this);
|
||||
}
|
||||
intent.putExtra(ManageApplications.APP_CHG, changed);
|
||||
setResult(ManageApplications.RESULT_OK, intent);
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -339,11 +380,10 @@ public class InstalledAppDetails extends Activity implements View.OnClickListene
|
||||
String packageName = mAppInfo.packageName;
|
||||
if(result == OP_SUCCESSFUL) {
|
||||
Log.i(TAG, "Cleared user data for system package:"+packageName);
|
||||
PkgSizeObserver observer = new PkgSizeObserver();
|
||||
mPm.getPackageSizeInfo(packageName, observer);
|
||||
mPm.getPackageSizeInfo(packageName, mSizeObserver);
|
||||
} else {
|
||||
mUninstallButton.setText(R.string.clear_user_data_text);
|
||||
mUninstallButton.setEnabled(true);
|
||||
mAppButton.setText(R.string.clear_user_data_text);
|
||||
mAppButton.setEnabled(true);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -352,20 +392,21 @@ public class InstalledAppDetails extends Activity implements View.OnClickListene
|
||||
* button for a system package
|
||||
*/
|
||||
private void initiateClearUserDataForSysPkg() {
|
||||
mUninstallButton.setEnabled(false);
|
||||
mAppButton.setEnabled(false);
|
||||
//invoke uninstall or clear user data based on sysPackage
|
||||
boolean recomputeSizes = false;
|
||||
String packageName = mAppInfo.packageName;
|
||||
Log.i(TAG, "Clearing user data for system package");
|
||||
ClearUserDataObserver observer = new ClearUserDataObserver();
|
||||
if(mClearDataObserver == null) {
|
||||
mClearDataObserver = new ClearUserDataObserver();
|
||||
}
|
||||
ActivityManager am = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
|
||||
boolean res = am.clearApplicationUserData(packageName, observer);
|
||||
boolean res = am.clearApplicationUserData(packageName, mClearDataObserver);
|
||||
if(!res) {
|
||||
//doesnt initiate clear. some error. should not happen but just log error for now
|
||||
Log.i(TAG, "Couldnt clear application user data for package:"+packageName);
|
||||
displayErrorDialog(R.string.clear_data_failed, false, false);
|
||||
} else {
|
||||
mUninstallButton.setText(R.string.recompute_size);
|
||||
mAppButton.setText(R.string.recompute_size);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -375,8 +416,8 @@ public class InstalledAppDetails extends Activity implements View.OnClickListene
|
||||
*/
|
||||
public void onClick(View v) {
|
||||
String packageName = mAppInfo.packageName;
|
||||
if(v == mUninstallButton) {
|
||||
if(mSysPackage) {
|
||||
if(v == mAppButton) {
|
||||
if(mCanUninstall) {
|
||||
//display confirmation dialog
|
||||
new AlertDialog.Builder(this)
|
||||
.setTitle(getString(R.string.clear_data_dlg_title))
|
||||
@@ -399,11 +440,17 @@ public class InstalledAppDetails extends Activity implements View.OnClickListene
|
||||
Intent intent = new Intent(Intent.ACTION_DEFAULT);
|
||||
intent.setClassName(mAppInfo.packageName, mAppInfo.manageSpaceActivityName);
|
||||
startActivityForResult(intent, -1);
|
||||
} else if (v == mClearCacheButton) {
|
||||
// Lazy initialization of observer
|
||||
if (mClearCacheObserver == null) {
|
||||
mClearCacheObserver = new ClearCacheObserver();
|
||||
}
|
||||
mPm.deleteApplicationCacheFiles(packageName, mClearCacheObserver);
|
||||
}
|
||||
}
|
||||
|
||||
public void onClick(DialogInterface dialog, int which) {
|
||||
if(which == AlertDialog.BUTTON1) {
|
||||
if(which == AlertDialog.BUTTON_POSITIVE) {
|
||||
//invoke uninstall or clear user data based on sysPackage
|
||||
initiateClearUserDataForSysPkg();
|
||||
} else {
|
||||
|
@@ -63,30 +63,55 @@ public class LocalePicker extends ListActivity {
|
||||
setContentView(getContentView());
|
||||
|
||||
String[] locales = getAssets().getLocales();
|
||||
final int N = locales.length;
|
||||
mLocales = new Loc[N];
|
||||
for (int i = 0; i < N; i++) {
|
||||
Locale locale = null;
|
||||
Arrays.sort(locales);
|
||||
|
||||
final int origSize = locales.length;
|
||||
Loc[] preprocess = new Loc[origSize];
|
||||
int finalSize = 0;
|
||||
for (int i = 0 ; i < origSize; i++ ) {
|
||||
String s = locales[i];
|
||||
int len = s.length();
|
||||
if (len == 0) {
|
||||
locale = new Locale("en", "US");
|
||||
} else if (len == 2) {
|
||||
locale = new Locale(s);
|
||||
if (len == 2) {
|
||||
Locale l = new Locale(s);
|
||||
preprocess[finalSize++] = new Loc(l.getDisplayLanguage(), l);
|
||||
} else if (len == 5) {
|
||||
locale = new Locale(s.substring(0, 2), s.substring(3, 5));
|
||||
}
|
||||
String displayName = "";
|
||||
if (locale != null) {
|
||||
displayName = locale.getDisplayName();
|
||||
}
|
||||
if ("zz_ZZ".equals(s)) {
|
||||
displayName = "Pseudo...";
|
||||
}
|
||||
String language = s.substring(0, 2);
|
||||
String country = s.substring(3, 5);
|
||||
Locale l = new Locale(language, country);
|
||||
|
||||
mLocales[i] = new Loc(displayName, locale);
|
||||
if (finalSize == 0) {
|
||||
preprocess[finalSize++] = new Loc(l.getDisplayLanguage(), l);
|
||||
} else {
|
||||
// check previous entry:
|
||||
// same lang and no country -> overwrite it with a lang-only name
|
||||
// same lang and a country -> upgrade to full name and
|
||||
// insert ours with full name
|
||||
// diff lang -> insert ours with lang-only name
|
||||
if (preprocess[finalSize-1].locale.getLanguage().equals(language)) {
|
||||
String prevCountry = preprocess[finalSize-1].locale.getCountry();
|
||||
if (prevCountry.length() == 0) {
|
||||
preprocess[finalSize-1].locale = l;
|
||||
preprocess[finalSize-1].label = l.getDisplayLanguage();
|
||||
} else {
|
||||
preprocess[finalSize-1].label = preprocess[finalSize-1].locale.getDisplayName();
|
||||
preprocess[finalSize++] = new Loc(l.getDisplayName(), l);
|
||||
}
|
||||
} else {
|
||||
String displayName;
|
||||
if (s.equals("zz_ZZ")) {
|
||||
displayName = "Pseudo...";
|
||||
} else {
|
||||
displayName = l.getDisplayLanguage();
|
||||
}
|
||||
preprocess[finalSize++] = new Loc(displayName, l);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
mLocales = new Loc[finalSize];
|
||||
for (int i = 0; i < finalSize ; i++) {
|
||||
mLocales[i] = preprocess[i];
|
||||
}
|
||||
|
||||
int layoutId = R.layout.locale_picker_item;
|
||||
int fieldId = R.id.locale;
|
||||
ArrayAdapter<Loc> adapter = new ArrayAdapter<Loc>(this, layoutId, fieldId, mLocales);
|
||||
@@ -107,25 +132,11 @@ public class LocalePicker extends ListActivity {
|
||||
|
||||
Loc loc = mLocales[position];
|
||||
config.locale = loc.locale;
|
||||
final String language = loc.locale.getLanguage();
|
||||
final String region = loc.locale.getCountry();
|
||||
|
||||
// indicate this isn't some passing default - the user wants this remembered
|
||||
config.userSetLocale = true;
|
||||
|
||||
am.updateConfiguration(config);
|
||||
|
||||
// Update the System properties
|
||||
SystemProperties.set("user.language", language);
|
||||
SystemProperties.set("user.region", region);
|
||||
// Write to file for persistence across reboots
|
||||
try {
|
||||
BufferedWriter bw = new BufferedWriter(new java.io.FileWriter(
|
||||
System.getenv("ANDROID_DATA") + "/locale"));
|
||||
bw.write(language + "_" + region);
|
||||
bw.close();
|
||||
} catch (java.io.IOException ioe) {
|
||||
Log.e(TAG,
|
||||
"Unable to persist locale. Error writing to locale file."
|
||||
+ ioe);
|
||||
}
|
||||
} catch (RemoteException e) {
|
||||
// Intentionally left blank
|
||||
}
|
||||
|
@@ -222,7 +222,7 @@ public class ProxySelector extends Activity
|
||||
if (!TextUtils.isEmpty(hostname)) {
|
||||
hostname += ':' + portStr;
|
||||
}
|
||||
Settings.System.putString(res, Settings.System.HTTP_PROXY, hostname);
|
||||
Settings.Secure.putString(res, Settings.Secure.HTTP_PROXY, hostname);
|
||||
sendBroadcast(new Intent(Proxy.PROXY_CHANGE_ACTION));
|
||||
|
||||
return true;
|
||||
|
@@ -31,13 +31,14 @@ import android.os.Message;
|
||||
import android.os.RemoteException;
|
||||
import android.os.ServiceManager;
|
||||
import android.os.SystemProperties;
|
||||
import android.pim.DateUtils;
|
||||
import android.preference.PreferenceManager;
|
||||
import android.telephony.CellLocation;
|
||||
import android.telephony.PhoneStateListener;
|
||||
import android.telephony.ServiceState;
|
||||
import android.telephony.TelephonyManager;
|
||||
import android.telephony.NeighboringCellInfo;
|
||||
import android.telephony.gsm.GsmCellLocation;
|
||||
import android.text.format.DateUtils;
|
||||
import android.util.Log;
|
||||
import android.view.Menu;
|
||||
import android.view.MenuItem;
|
||||
@@ -66,6 +67,7 @@ import java.io.ByteArrayOutputStream;
|
||||
import java.io.DataOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.net.UnknownHostException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class RadioInfo extends Activity {
|
||||
@@ -210,7 +212,7 @@ public class RadioInfo extends Activity {
|
||||
case EVENT_QUERY_NEIGHBORING_CIDS_DONE:
|
||||
ar= (AsyncResult) msg.obj;
|
||||
if (ar.exception == null) {
|
||||
updateNeighboringCids((String[])ar.result);
|
||||
updateNeighboringCids((ArrayList<NeighboringCellInfo>)ar.result);
|
||||
} else {
|
||||
mNeighboringCids.setText("unknown");
|
||||
}
|
||||
@@ -651,23 +653,21 @@ public class RadioInfo extends Activity {
|
||||
+ ((cid == -1) ? "unknown" : Integer.toHexString(cid)));
|
||||
}
|
||||
|
||||
private final void updateNeighboringCids(String[] cids) {
|
||||
if (cids != null && cids.length > 0 && cids[0] != null) {
|
||||
int size = Integer.parseInt(cids[0]);
|
||||
String neiborings;
|
||||
if (size > 0) {
|
||||
neiborings = "{";
|
||||
for (int i=1; i<=size; i++) {
|
||||
neiborings += cids[i] + ", ";
|
||||
}
|
||||
neiborings += "}";
|
||||
private final void updateNeighboringCids(ArrayList<NeighboringCellInfo> cids) {
|
||||
String neighborings = "";
|
||||
if (cids != null) {
|
||||
if ( cids.isEmpty() ) {
|
||||
neighborings = "no neighboring cells";
|
||||
} else {
|
||||
neiborings = "none";
|
||||
for (NeighboringCellInfo cell : cids) {
|
||||
neighborings += "{" + Integer.toHexString(cell.getCid())
|
||||
+ "@" + cell.getRssi() + "} ";
|
||||
}
|
||||
}
|
||||
mNeighboringCids.setText(neiborings);
|
||||
} else {
|
||||
mNeighboringCids.setText("unknown");
|
||||
neighborings = "unknown";
|
||||
}
|
||||
mNeighboringCids.setText(neighborings);
|
||||
}
|
||||
|
||||
private final void
|
||||
@@ -952,13 +952,15 @@ public class RadioInfo extends Activity {
|
||||
.append("\n to ")
|
||||
.append(pdp.getApn().toString())
|
||||
.append("\ninterface: ")
|
||||
.append(phone.getInterfaceName(phone.getActiveApn()))
|
||||
.append(phone.getInterfaceName(phone.getActiveApnTypes()[0]))
|
||||
.append("\naddress: ")
|
||||
.append(phone.getIpAddress(phone.getActiveApn()))
|
||||
.append(phone.getIpAddress(phone.getActiveApnTypes()[0]))
|
||||
.append("\ngateway: ")
|
||||
.append(phone.getGateway(phone.getActiveApn()));
|
||||
String[] dns = phone.getDnsServers(phone.getActiveApn());
|
||||
sb.append("\ndns: ").append(dns[0]).append(", ").append(dns[1]);
|
||||
.append(phone.getGateway(phone.getActiveApnTypes()[0]));
|
||||
String[] dns = phone.getDnsServers(phone.getActiveApnTypes()[0]);
|
||||
if (dns != null) {
|
||||
sb.append("\ndns: ").append(dns[0]).append(", ").append(dns[1]);
|
||||
}
|
||||
} else if (pdp.getState().isInactive()) {
|
||||
sb.append(" disconnected with last try at ")
|
||||
.append(DateUtils.timeString(pdp.getLastFailTime()))
|
||||
|
129
src/com/android/settings/RingerVolumePreference.java
Normal file
@@ -0,0 +1,129 @@
|
||||
/*
|
||||
* Copyright (C) 2008 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package com.android.settings;
|
||||
|
||||
import android.content.Context;
|
||||
import android.media.AudioManager;
|
||||
import android.preference.VolumePreference;
|
||||
import android.preference.VolumePreference.SeekBarVolumizer;
|
||||
import android.provider.Settings;
|
||||
import android.util.AttributeSet;
|
||||
import android.view.View;
|
||||
import android.widget.CheckBox;
|
||||
import android.widget.CompoundButton;
|
||||
import android.widget.SeekBar;
|
||||
import android.widget.TextView;
|
||||
|
||||
/**
|
||||
* Special preference type that allows configuration of both the ring volume and
|
||||
* notification volume.
|
||||
*/
|
||||
public class RingerVolumePreference extends VolumePreference implements
|
||||
CheckBox.OnCheckedChangeListener {
|
||||
private static final String TAG = "RingerVolumePreference";
|
||||
|
||||
private CheckBox mNotificationsUseRingVolumeCheckbox;
|
||||
private SeekBarVolumizer mNotificationSeekBarVolumizer;
|
||||
private TextView mNotificationVolumeTitle;
|
||||
|
||||
public RingerVolumePreference(Context context, AttributeSet attrs) {
|
||||
super(context, attrs);
|
||||
|
||||
// The always visible seekbar is for ring volume
|
||||
setStreamType(AudioManager.STREAM_RING);
|
||||
|
||||
setDialogLayoutResource(R.layout.preference_dialog_ringervolume);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onBindDialogView(View view) {
|
||||
super.onBindDialogView(view);
|
||||
|
||||
mNotificationsUseRingVolumeCheckbox =
|
||||
(CheckBox) view.findViewById(R.id.same_notification_volume);
|
||||
mNotificationsUseRingVolumeCheckbox.setOnCheckedChangeListener(this);
|
||||
mNotificationsUseRingVolumeCheckbox.setChecked(Settings.System.getInt(
|
||||
getContext().getContentResolver(),
|
||||
Settings.System.NOTIFICATIONS_USE_RING_VOLUME, 1) == 1);
|
||||
|
||||
final SeekBar seekBar = (SeekBar) view.findViewById(R.id.notification_volume_seekbar);
|
||||
mNotificationSeekBarVolumizer = new SeekBarVolumizer(getContext(), seekBar,
|
||||
AudioManager.STREAM_NOTIFICATION);
|
||||
|
||||
mNotificationVolumeTitle = (TextView) view.findViewById(R.id.notification_volume_title);
|
||||
|
||||
setNotificationVolumeVisibility(!mNotificationsUseRingVolumeCheckbox.isChecked());
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onDialogClosed(boolean positiveResult) {
|
||||
super.onDialogClosed(positiveResult);
|
||||
|
||||
if (!positiveResult && mNotificationSeekBarVolumizer != null) {
|
||||
mNotificationSeekBarVolumizer.revertVolume();
|
||||
}
|
||||
|
||||
cleanup();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onActivityStop() {
|
||||
super.onActivityStop();
|
||||
cleanup();
|
||||
}
|
||||
|
||||
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
|
||||
setNotificationVolumeVisibility(!isChecked);
|
||||
|
||||
Settings.System.putInt(getContext().getContentResolver(),
|
||||
Settings.System.NOTIFICATIONS_USE_RING_VOLUME, isChecked ? 1 : 0);
|
||||
|
||||
if (isChecked) {
|
||||
// The user wants the notification to be same as ring, so do a
|
||||
// one-time sync right now
|
||||
AudioManager audioManager = (AudioManager) getContext()
|
||||
.getSystemService(Context.AUDIO_SERVICE);
|
||||
audioManager.setStreamVolume(AudioManager.STREAM_NOTIFICATION,
|
||||
audioManager.getStreamVolume(AudioManager.STREAM_RING), 0);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onSampleStarting(SeekBarVolumizer volumizer) {
|
||||
super.onSampleStarting(volumizer);
|
||||
|
||||
if (mNotificationSeekBarVolumizer != null && volumizer != mNotificationSeekBarVolumizer) {
|
||||
mNotificationSeekBarVolumizer.stopSample();
|
||||
}
|
||||
}
|
||||
|
||||
private void setNotificationVolumeVisibility(boolean visible) {
|
||||
if (mNotificationSeekBarVolumizer != null) {
|
||||
mNotificationSeekBarVolumizer.getSeekBar().setVisibility(
|
||||
visible ? View.VISIBLE : View.GONE);
|
||||
mNotificationVolumeTitle.setVisibility(visible ? View.VISIBLE : View.GONE);
|
||||
}
|
||||
}
|
||||
|
||||
private void cleanup() {
|
||||
if (mNotificationSeekBarVolumizer != null) {
|
||||
mNotificationSeekBarVolumizer.stop();
|
||||
mNotificationSeekBarVolumizer = null;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
@@ -44,11 +44,13 @@ public class SecuritySettings extends PreferenceActivity
|
||||
|
||||
private static final String KEY_LOCK_ENABLED = "lockenabled";
|
||||
private static final String KEY_VISIBLE_PATTERN = "visiblepattern";
|
||||
private static final String KEY_TACTILE_FEEDBACK_ENABLED = "tactilefeedback";
|
||||
private static final int CONFIRM_PATTERN_REQUEST_CODE = 55;
|
||||
|
||||
private LockPatternUtils mLockPatternUtils;
|
||||
private CheckBoxPreference mLockEnabled;
|
||||
private CheckBoxPreference mVisiblePattern;
|
||||
private CheckBoxPreference mTactileFeedback;
|
||||
private Preference mChoosePattern;
|
||||
|
||||
private CheckBoxPreference mShowPassword;
|
||||
@@ -103,6 +105,12 @@ public class SecuritySettings extends PreferenceActivity
|
||||
mVisiblePattern.setTitle(R.string.lockpattern_settings_enable_visible_pattern_title);
|
||||
inlinePrefCat.addPreference(mVisiblePattern);
|
||||
|
||||
// tactile feedback
|
||||
mTactileFeedback = new CheckBoxPreference(this);
|
||||
mTactileFeedback.setKey(KEY_TACTILE_FEEDBACK_ENABLED);
|
||||
mTactileFeedback.setTitle(R.string.lockpattern_settings_enable_tactile_feedback_title);
|
||||
inlinePrefCat.addPreference(mTactileFeedback);
|
||||
|
||||
// change pattern lock
|
||||
Intent intent = new Intent();
|
||||
intent.setClassName("com.android.settings",
|
||||
@@ -146,9 +154,11 @@ public class SecuritySettings extends PreferenceActivity
|
||||
boolean patternExists = mLockPatternUtils.savedPatternExists();
|
||||
mLockEnabled.setEnabled(patternExists);
|
||||
mVisiblePattern.setEnabled(patternExists);
|
||||
mTactileFeedback.setEnabled(patternExists);
|
||||
|
||||
mLockEnabled.setChecked(mLockPatternUtils.isLockPatternEnabled());
|
||||
mVisiblePattern.setChecked(mLockPatternUtils.isVisiblePatternEnabled());
|
||||
mTactileFeedback.setChecked(mLockPatternUtils.isTactileFeedbackEnabled());
|
||||
|
||||
int chooseStringRes = mLockPatternUtils.savedPatternExists() ?
|
||||
R.string.lockpattern_settings_change_lock_pattern :
|
||||
@@ -169,6 +179,8 @@ public class SecuritySettings extends PreferenceActivity
|
||||
mLockPatternUtils.setLockPatternEnabled(isToggled(preference));
|
||||
} else if (KEY_VISIBLE_PATTERN.equals(key)) {
|
||||
mLockPatternUtils.setVisiblePatternEnabled(isToggled(preference));
|
||||
} else if (KEY_TACTILE_FEEDBACK_ENABLED.equals(key)) {
|
||||
mLockPatternUtils.setTactileFeedbackEnabled(isToggled(preference));
|
||||
} else if (preference == mShowPassword) {
|
||||
Settings.System.putInt(getContentResolver(), Settings.System.TEXT_SHOW_PASSWORD,
|
||||
mShowPassword.isChecked() ? 1 : 0);
|
||||
@@ -198,9 +210,9 @@ public class SecuritySettings extends PreferenceActivity
|
||||
}
|
||||
|
||||
private void setProviders(String providers) {
|
||||
// Update the system setting LOCATION_PROVIDERS_ALLOWED
|
||||
Settings.System.putString(getContentResolver(),
|
||||
Settings.System.LOCATION_PROVIDERS_ALLOWED, providers);
|
||||
// Update the secure setting LOCATION_PROVIDERS_ALLOWED
|
||||
Settings.Secure.putString(getContentResolver(),
|
||||
Settings.Secure.LOCATION_PROVIDERS_ALLOWED, providers);
|
||||
if (Config.LOGV) {
|
||||
Log.v("Location Accuracy", "Setting LOCATION_PROVIDERS_ALLOWED = " + providers);
|
||||
}
|
||||
@@ -213,8 +225,8 @@ public class SecuritySettings extends PreferenceActivity
|
||||
*/
|
||||
private String getAllowedProviders() {
|
||||
String allowedProviders =
|
||||
Settings.System.getString(getContentResolver(),
|
||||
Settings.System.LOCATION_PROVIDERS_ALLOWED);
|
||||
Settings.Secure.getString(getContentResolver(),
|
||||
Settings.Secure.LOCATION_PROVIDERS_ALLOWED);
|
||||
if (allowedProviders == null) {
|
||||
allowedProviders = "";
|
||||
}
|
||||
|
@@ -28,13 +28,10 @@ import android.widget.Toast;
|
||||
import java.io.FileNotFoundException;
|
||||
import java.io.FileReader;
|
||||
import java.io.IOException;
|
||||
import java.io.UnsupportedEncodingException;
|
||||
|
||||
import com.android.internal.app.AlertActivity;
|
||||
import com.android.internal.app.AlertController;
|
||||
|
||||
import org.apache.commons.codec.binary.Base64;
|
||||
|
||||
/**
|
||||
* The "dialog" that shows from "License" in the Settings app.
|
||||
*/
|
||||
@@ -92,27 +89,8 @@ public class SettingsLicenseActivity extends AlertActivity {
|
||||
|
||||
WebView webView = new WebView(this);
|
||||
|
||||
if (LOGV) Log.v(TAG, "Started encode at " + System.currentTimeMillis());
|
||||
// Need to encode to base64 for WebView to load the contents properly
|
||||
String dataStr;
|
||||
try {
|
||||
byte[] base64Bytes = Base64.encodeBase64(data.toString().getBytes("ISO8859_1"));
|
||||
dataStr = new String(base64Bytes);
|
||||
} catch (UnsupportedEncodingException e) {
|
||||
Log.e(TAG, "Could not convert to base64", e);
|
||||
showErrorAndFinish();
|
||||
return;
|
||||
}
|
||||
if (LOGV) Log.v(TAG, "Ended encode at " + System.currentTimeMillis());
|
||||
if (LOGV) {
|
||||
Log.v(TAG, "Started test decode at " + System.currentTimeMillis());
|
||||
Base64.decodeBase64(dataStr.getBytes());
|
||||
Log.v(TAG, "Ended decode at " + System.currentTimeMillis());
|
||||
}
|
||||
|
||||
|
||||
// Begin the loading. This will be done in a separate thread in WebView.
|
||||
webView.loadData(dataStr, "text/html", "base64");
|
||||
webView.loadDataWithBaseURL(null, data.toString(), "text/html", "utf-8", null);
|
||||
webView.setWebViewClient(new WebViewClient() {
|
||||
@Override
|
||||
public void onPageFinished(WebView view, String url) {
|
||||
|
@@ -25,6 +25,8 @@ import android.content.Intent;
|
||||
import android.content.IntentFilter;
|
||||
import android.media.AudioManager;
|
||||
import android.os.Bundle;
|
||||
import android.os.RemoteException;
|
||||
import android.os.ServiceManager;
|
||||
import android.preference.ListPreference;
|
||||
import android.preference.Preference;
|
||||
import android.preference.PreferenceActivity;
|
||||
@@ -32,6 +34,7 @@ import android.preference.PreferenceScreen;
|
||||
import android.preference.CheckBoxPreference;
|
||||
import android.provider.Settings;
|
||||
import android.util.Log;
|
||||
import android.view.IWindowManager;
|
||||
|
||||
public class SoundAndDisplaySettings extends PreferenceActivity implements
|
||||
Preference.OnPreferenceChangeListener {
|
||||
@@ -45,14 +48,19 @@ public class SoundAndDisplaySettings extends PreferenceActivity implements
|
||||
private static final String KEY_SCREEN_TIMEOUT = "screen_timeout";
|
||||
private static final String KEY_DTMF_TONE = "dtmf_tone";
|
||||
private static final String KEY_SOUND_EFFECTS = "sound_effects";
|
||||
private static final String KEY_ANIMATIONS = "animations";
|
||||
|
||||
private CheckBoxPreference mSilent;
|
||||
private CheckBoxPreference mVibrate;
|
||||
private CheckBoxPreference mDtmfTone;
|
||||
private CheckBoxPreference mSoundEffects;
|
||||
private CheckBoxPreference mAnimations;
|
||||
private float[] mAnimationScales;
|
||||
|
||||
private AudioManager mAudioManager;
|
||||
|
||||
private IWindowManager mWindowManager;
|
||||
|
||||
private BroadcastReceiver mReceiver = new BroadcastReceiver() {
|
||||
@Override
|
||||
public void onReceive(Context context, Intent intent) {
|
||||
@@ -73,6 +81,7 @@ public class SoundAndDisplaySettings extends PreferenceActivity implements
|
||||
ContentResolver resolver = getContentResolver();
|
||||
|
||||
mAudioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
|
||||
mWindowManager = IWindowManager.Stub.asInterface(ServiceManager.getService("window"));
|
||||
|
||||
addPreferencesFromResource(R.xml.sound_and_display_settings);
|
||||
|
||||
@@ -86,11 +95,13 @@ public class SoundAndDisplaySettings extends PreferenceActivity implements
|
||||
mSoundEffects.setPersistent(false);
|
||||
mSoundEffects.setChecked(Settings.System.getInt(resolver,
|
||||
Settings.System.SOUND_EFFECTS_ENABLED, 0) != 0);
|
||||
mAnimations = (CheckBoxPreference) findPreference(KEY_ANIMATIONS);
|
||||
mAnimations.setPersistent(false);
|
||||
|
||||
ListPreference screenTimeoutPreference =
|
||||
(ListPreference) findPreference(KEY_SCREEN_TIMEOUT);
|
||||
screenTimeoutPreference.setValue(String.valueOf(Settings.System.getInt(
|
||||
getContentResolver(), SCREEN_OFF_TIMEOUT, FALLBACK_SCREEN_TIMEOUT_VALUE)));
|
||||
resolver, SCREEN_OFF_TIMEOUT, FALLBACK_SCREEN_TIMEOUT_VALUE)));
|
||||
screenTimeoutPreference.setOnPreferenceChangeListener(this);
|
||||
}
|
||||
|
||||
@@ -124,6 +135,23 @@ public class SoundAndDisplaySettings extends PreferenceActivity implements
|
||||
if (phoneVibrate != mVibrate.isChecked() || force) {
|
||||
mVibrate.setChecked(phoneVibrate);
|
||||
}
|
||||
|
||||
boolean animations = true;
|
||||
try {
|
||||
mAnimationScales = mWindowManager.getAnimationScales();
|
||||
} catch (RemoteException e) {
|
||||
}
|
||||
if (mAnimationScales != null) {
|
||||
for (int i=0; i<mAnimationScales.length; i++) {
|
||||
if (mAnimationScales[i] == 0) {
|
||||
animations = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (animations != mAnimations.isChecked() || force) {
|
||||
mAnimations.setChecked(animations);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -151,6 +179,15 @@ public class SoundAndDisplaySettings extends PreferenceActivity implements
|
||||
}
|
||||
Settings.System.putInt(getContentResolver(), Settings.System.SOUND_EFFECTS_ENABLED,
|
||||
mSoundEffects.isChecked() ? 1 : 0);
|
||||
|
||||
} else if (preference == mAnimations) {
|
||||
for (int i=0; i<mAnimationScales.length; i++) {
|
||||
mAnimationScales[i] = mAnimations.isChecked() ? 1 : 0;
|
||||
}
|
||||
try {
|
||||
mWindowManager.setAnimationScales(mAnimationScales);
|
||||
} catch (RemoteException e) {
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
@@ -16,25 +16,13 @@
|
||||
|
||||
package com.android.settings;
|
||||
|
||||
import com.android.settings.bluetooth.BluetoothEnabler;
|
||||
import com.android.settings.wifi.WifiEnabler;
|
||||
|
||||
import android.bluetooth.BluetoothDevice;
|
||||
import android.bluetooth.BluetoothIntent;
|
||||
import android.bluetooth.IBluetoothDeviceCallback;
|
||||
import android.content.BroadcastReceiver;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.IntentFilter;
|
||||
import android.net.wifi.WifiManager;
|
||||
import android.os.Bundle;
|
||||
import android.os.Handler;
|
||||
import android.os.Message;
|
||||
import android.preference.Preference;
|
||||
import android.preference.PreferenceActivity;
|
||||
import android.preference.PreferenceScreen;
|
||||
import android.preference.CheckBoxPreference;
|
||||
import android.provider.Settings;
|
||||
import android.widget.Toast;
|
||||
|
||||
public class WirelessSettings extends PreferenceActivity {
|
||||
|
||||
@@ -44,13 +32,7 @@ public class WirelessSettings extends PreferenceActivity {
|
||||
|
||||
private WifiEnabler mWifiEnabler;
|
||||
private AirplaneModeEnabler mAirplaneModeEnabler;
|
||||
|
||||
private CheckBoxPreference mToggleBluetooth;
|
||||
|
||||
private IntentFilter mIntentFilter;
|
||||
|
||||
private static final int EVENT_FAILED_BT_ENABLE = 1;
|
||||
private static final int EVENT_PASSED_BT_ENABLE = 2;
|
||||
private BluetoothEnabler mBtEnabler;
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
@@ -58,30 +40,25 @@ public class WirelessSettings extends PreferenceActivity {
|
||||
|
||||
addPreferencesFromResource(R.xml.wireless_settings);
|
||||
|
||||
mIntentFilter = new IntentFilter();
|
||||
mIntentFilter.addAction(BluetoothIntent.ENABLED_ACTION);
|
||||
mIntentFilter.addAction(BluetoothIntent.DISABLED_ACTION);
|
||||
|
||||
initToggles();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onResume() {
|
||||
super.onResume();
|
||||
refreshToggles();
|
||||
registerReceiver(mReceiver, mIntentFilter);
|
||||
|
||||
mWifiEnabler.resume();
|
||||
mAirplaneModeEnabler.resume();
|
||||
mBtEnabler.resume();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onPause() {
|
||||
super.onPause();
|
||||
unregisterReceiver(mReceiver);
|
||||
|
||||
|
||||
mWifiEnabler.pause();
|
||||
mAirplaneModeEnabler.pause();
|
||||
mBtEnabler.pause();
|
||||
}
|
||||
|
||||
private void initToggles() {
|
||||
@@ -95,116 +72,9 @@ public class WirelessSettings extends PreferenceActivity {
|
||||
this,
|
||||
(CheckBoxPreference) findPreference(KEY_TOGGLE_AIRPLANE));
|
||||
|
||||
mToggleBluetooth = (CheckBoxPreference) findPreference(KEY_TOGGLE_BLUETOOTH);
|
||||
mToggleBluetooth.setPersistent(false);
|
||||
mBtEnabler = new BluetoothEnabler(
|
||||
this,
|
||||
(CheckBoxPreference) findPreference(KEY_TOGGLE_BLUETOOTH));
|
||||
}
|
||||
|
||||
private void refreshToggles() {
|
||||
mToggleBluetooth.setChecked(isBluetoothEnabled());
|
||||
mToggleBluetooth.setEnabled(true);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference) {
|
||||
if (preference == mToggleBluetooth) {
|
||||
setBluetoothEnabled(mToggleBluetooth.isChecked());
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
private boolean isBluetoothEnabled() {
|
||||
BluetoothDevice device = (BluetoothDevice)getSystemService(BLUETOOTH_SERVICE);
|
||||
if (device != null) {
|
||||
return device.isEnabled();
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
private void setBluetoothEnabled(boolean enabled) {
|
||||
try {
|
||||
BluetoothDevice device = (BluetoothDevice)getSystemService(BLUETOOTH_SERVICE);
|
||||
if (enabled) {
|
||||
// Turn it off until intent or callback is delivered
|
||||
mToggleBluetooth.setChecked(false);
|
||||
if (device.enable(mBtCallback)) {
|
||||
mToggleBluetooth.setSummary(R.string.bluetooth_enabling);
|
||||
mToggleBluetooth.setEnabled(false);
|
||||
}
|
||||
} else {
|
||||
if (device.disable()) {
|
||||
Settings.System.putInt(getContentResolver(),
|
||||
Settings.System.BLUETOOTH_ON, 0);
|
||||
} else {
|
||||
// Unusual situation, that you can't turn off bluetooth
|
||||
mToggleBluetooth.setChecked(true);
|
||||
}
|
||||
}
|
||||
} catch (NullPointerException e) {
|
||||
// TODO: 1071858
|
||||
mToggleBluetooth.setChecked(false);
|
||||
mToggleBluetooth.setEnabled(false);
|
||||
}
|
||||
}
|
||||
|
||||
private IBluetoothDeviceCallback mBtCallback = new IBluetoothDeviceCallback.Stub() {
|
||||
|
||||
public void onEnableResult(int res) {
|
||||
switch (res) {
|
||||
case BluetoothDevice.RESULT_FAILURE:
|
||||
mHandler.sendMessage(mHandler.obtainMessage(EVENT_FAILED_BT_ENABLE, 0));
|
||||
break;
|
||||
case BluetoothDevice.RESULT_SUCCESS:
|
||||
mHandler.sendMessage(mHandler.obtainMessage(EVENT_PASSED_BT_ENABLE, 0));
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
public void onCreateBondingResult(String device, int res) {
|
||||
// Don't care
|
||||
}
|
||||
public void onGetRemoteServiceChannelResult(String address, int channel) { }
|
||||
};
|
||||
|
||||
private final BroadcastReceiver mReceiver = new BroadcastReceiver() {
|
||||
@Override
|
||||
public void onReceive(Context context, Intent intent) {
|
||||
String action = intent.getAction();
|
||||
if (action.equals(BluetoothIntent.ENABLED_ACTION)) {
|
||||
updateBtStatus(true);
|
||||
} else if (action.equals(BluetoothIntent.DISABLED_ACTION)) {
|
||||
mToggleBluetooth.setChecked(false);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
private void updateBtStatus(boolean enabled) {
|
||||
mToggleBluetooth.setChecked(enabled);
|
||||
mToggleBluetooth.setEnabled(true);
|
||||
mToggleBluetooth.setSummary(R.string.bluetooth_quick_toggle_summary);
|
||||
if (enabled) {
|
||||
Settings.System.putInt(getContentResolver(),
|
||||
Settings.System.BLUETOOTH_ON, 1);
|
||||
}
|
||||
}
|
||||
|
||||
private Handler mHandler = new Handler() {
|
||||
@Override
|
||||
public void handleMessage(Message msg) {
|
||||
switch (msg.what) {
|
||||
case EVENT_PASSED_BT_ENABLE:
|
||||
updateBtStatus(true);
|
||||
break;
|
||||
case EVENT_FAILED_BT_ENABLE:
|
||||
updateBtStatus(false);
|
||||
Toast.makeText(WirelessSettings.this,
|
||||
getResources().getString(R.string.bluetooth_failed_to_enable),
|
||||
Toast.LENGTH_SHORT).show();
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
|
@@ -0,0 +1,122 @@
|
||||
/*
|
||||
* Copyright (C) 2008 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package com.android.settings.bluetooth;
|
||||
|
||||
import com.android.settings.R;
|
||||
|
||||
import android.content.Context;
|
||||
import android.preference.Preference;
|
||||
import android.util.TypedValue;
|
||||
import android.view.View;
|
||||
import android.widget.ImageView;
|
||||
|
||||
/**
|
||||
* BluetoothDevicePreference is the preference type used to display each remote
|
||||
* Bluetooth device in the Bluetooth Settings screen.
|
||||
*/
|
||||
public class BluetoothDevicePreference extends Preference implements LocalBluetoothDevice.Callback {
|
||||
private static final String TAG = "BluetoothDevicePreference";
|
||||
|
||||
private static int sDimAlpha = Integer.MIN_VALUE;
|
||||
|
||||
private LocalBluetoothDevice mLocalDevice;
|
||||
|
||||
/**
|
||||
* Cached local copy of whether the device is busy. This is only updated
|
||||
* from {@link #onDeviceAttributesChanged(LocalBluetoothDevice)}.
|
||||
*/
|
||||
private boolean mIsBusy;
|
||||
|
||||
public BluetoothDevicePreference(Context context, LocalBluetoothDevice localDevice) {
|
||||
super(context);
|
||||
|
||||
if (sDimAlpha == Integer.MIN_VALUE) {
|
||||
TypedValue outValue = new TypedValue();
|
||||
context.getTheme().resolveAttribute(android.R.attr.disabledAlpha, outValue, true);
|
||||
sDimAlpha = (int) (outValue.getFloat() * 255);
|
||||
}
|
||||
|
||||
mLocalDevice = localDevice;
|
||||
|
||||
setLayoutResource(R.layout.preference_bluetooth);
|
||||
|
||||
localDevice.registerCallback(this);
|
||||
|
||||
onDeviceAttributesChanged(localDevice);
|
||||
}
|
||||
|
||||
public LocalBluetoothDevice getDevice() {
|
||||
return mLocalDevice;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onPrepareForRemoval() {
|
||||
super.onPrepareForRemoval();
|
||||
mLocalDevice.unregisterCallback(this);
|
||||
}
|
||||
|
||||
public void onDeviceAttributesChanged(LocalBluetoothDevice device) {
|
||||
|
||||
/*
|
||||
* The preference framework takes care of making sure the value has
|
||||
* changed before proceeding.
|
||||
*/
|
||||
|
||||
setTitle(mLocalDevice.getName());
|
||||
|
||||
/*
|
||||
* TODO: Showed "Paired" even though it was "Connected". This may be
|
||||
* related to BluetoothHeadset not bound to the actual
|
||||
* BluetoothHeadsetService when we got here.
|
||||
*/
|
||||
setSummary(mLocalDevice.getSummary());
|
||||
|
||||
// Used to gray out the item
|
||||
mIsBusy = mLocalDevice.isBusy();
|
||||
|
||||
// Data has changed
|
||||
notifyChanged();
|
||||
|
||||
// This could affect ordering, so notify that also
|
||||
notifyHierarchyChanged();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isEnabled() {
|
||||
return super.isEnabled() && !mIsBusy;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onBindView(View view) {
|
||||
super.onBindView(view);
|
||||
|
||||
ImageView btClass = (ImageView) view.findViewById(R.id.btClass);
|
||||
btClass.setImageResource(mLocalDevice.getBtClassDrawable());
|
||||
btClass.setAlpha(isEnabled() ? 255 : sDimAlpha);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int compareTo(Preference another) {
|
||||
if (!(another instanceof BluetoothDevicePreference)) {
|
||||
// Put other preference types above us
|
||||
return 1;
|
||||
}
|
||||
|
||||
return mLocalDevice.compareTo(((BluetoothDevicePreference) another).mLocalDevice);
|
||||
}
|
||||
|
||||
}
|
@@ -0,0 +1,192 @@
|
||||
/*
|
||||
* Copyright (C) 2008 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package com.android.settings.bluetooth;
|
||||
|
||||
import com.android.settings.R;
|
||||
|
||||
import android.bluetooth.BluetoothDevice;
|
||||
import android.bluetooth.BluetoothIntent;
|
||||
import android.content.BroadcastReceiver;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.IntentFilter;
|
||||
import android.content.SharedPreferences;
|
||||
import android.os.Handler;
|
||||
import android.os.SystemProperties;
|
||||
import android.preference.Preference;
|
||||
import android.preference.CheckBoxPreference;
|
||||
import android.util.Log;
|
||||
|
||||
/**
|
||||
* BluetoothDiscoverableEnabler is a helper to manage the "Discoverable"
|
||||
* checkbox. It sets/unsets discoverability and keeps track of how much time
|
||||
* until the the discoverability is automatically turned off.
|
||||
*/
|
||||
public class BluetoothDiscoverableEnabler implements Preference.OnPreferenceChangeListener {
|
||||
private static final String TAG = "BluetoothDiscoverableEnabler";
|
||||
private static final boolean V = LocalBluetoothManager.V;
|
||||
|
||||
private static final String SYSTEM_PROPERTY_DISCOVERABLE_TIMEOUT =
|
||||
"debug.bt.discoverable_time";
|
||||
private static final int DISCOVERABLE_TIMEOUT = 120;
|
||||
|
||||
private static final String SHARED_PREFERENCES_KEY_DISCOVERABLE_END_TIMESTAMP =
|
||||
"discoverable_end_timestamp";
|
||||
|
||||
private final Context mContext;
|
||||
private final Handler mUiHandler;
|
||||
private final CheckBoxPreference mCheckBoxPreference;
|
||||
|
||||
private final LocalBluetoothManager mLocalManager;
|
||||
|
||||
private final BroadcastReceiver mReceiver = new BroadcastReceiver() {
|
||||
@Override
|
||||
public void onReceive(Context context, Intent intent) {
|
||||
handleModeChanged(intent.getIntExtra(BluetoothIntent.MODE,
|
||||
BluetoothDevice.MODE_UNKNOWN));
|
||||
}
|
||||
};
|
||||
|
||||
private final Runnable mUpdateCountdownSummaryRunnable = new Runnable() {
|
||||
public void run() {
|
||||
updateCountdownSummary();
|
||||
}
|
||||
};
|
||||
|
||||
public BluetoothDiscoverableEnabler(Context context, CheckBoxPreference checkBoxPreference) {
|
||||
mContext = context;
|
||||
mUiHandler = new Handler();
|
||||
mCheckBoxPreference = checkBoxPreference;
|
||||
|
||||
checkBoxPreference.setPersistent(false);
|
||||
|
||||
mLocalManager = LocalBluetoothManager.getInstance(context);
|
||||
if (mLocalManager == null) {
|
||||
// Bluetooth not supported
|
||||
checkBoxPreference.setEnabled(false);
|
||||
}
|
||||
}
|
||||
|
||||
public void resume() {
|
||||
if (mLocalManager == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
mContext.registerReceiver(mReceiver,
|
||||
new IntentFilter(BluetoothIntent.MODE_CHANGED_ACTION));
|
||||
mCheckBoxPreference.setOnPreferenceChangeListener(this);
|
||||
|
||||
handleModeChanged(mLocalManager.getBluetoothManager().getMode());
|
||||
}
|
||||
|
||||
public void pause() {
|
||||
if (mLocalManager == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
mUiHandler.removeCallbacks(mUpdateCountdownSummaryRunnable);
|
||||
mCheckBoxPreference.setOnPreferenceChangeListener(null);
|
||||
mContext.unregisterReceiver(mReceiver);
|
||||
}
|
||||
|
||||
public boolean onPreferenceChange(Preference preference, Object value) {
|
||||
if (V) {
|
||||
Log.v(TAG, "Preference changed to " + value);
|
||||
}
|
||||
|
||||
// Turn on/off BT discoverability
|
||||
setEnabled((Boolean) value);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
private void setEnabled(final boolean enable) {
|
||||
BluetoothDevice manager = mLocalManager.getBluetoothManager();
|
||||
|
||||
if (enable) {
|
||||
|
||||
int timeout = getDiscoverableTimeout();
|
||||
manager.setDiscoverableTimeout(timeout);
|
||||
|
||||
long endTimestamp = System.currentTimeMillis() + timeout * 1000;
|
||||
persistDiscoverableEndTimestamp(endTimestamp);
|
||||
|
||||
manager.setMode(BluetoothDevice.MODE_DISCOVERABLE);
|
||||
handleModeChanged(BluetoothDevice.MODE_DISCOVERABLE);
|
||||
|
||||
} else {
|
||||
manager.setMode(BluetoothDevice.MODE_CONNECTABLE);
|
||||
}
|
||||
}
|
||||
|
||||
private int getDiscoverableTimeout() {
|
||||
int timeout = SystemProperties.getInt(SYSTEM_PROPERTY_DISCOVERABLE_TIMEOUT, -1);
|
||||
if (timeout <= 0) {
|
||||
timeout = DISCOVERABLE_TIMEOUT;
|
||||
}
|
||||
|
||||
return timeout;
|
||||
}
|
||||
|
||||
private void persistDiscoverableEndTimestamp(long endTimestamp) {
|
||||
SharedPreferences.Editor editor = mLocalManager.getSharedPreferences().edit();
|
||||
editor.putLong(SHARED_PREFERENCES_KEY_DISCOVERABLE_END_TIMESTAMP, endTimestamp);
|
||||
editor.commit();
|
||||
}
|
||||
|
||||
private void handleModeChanged(int mode) {
|
||||
if (V) {
|
||||
Log.v(TAG, "Got mode changed: " + mode);
|
||||
}
|
||||
|
||||
if (mode == BluetoothDevice.MODE_DISCOVERABLE) {
|
||||
mCheckBoxPreference.setChecked(true);
|
||||
updateCountdownSummary();
|
||||
|
||||
} else {
|
||||
mCheckBoxPreference.setChecked(false);
|
||||
}
|
||||
}
|
||||
|
||||
private void updateCountdownSummary() {
|
||||
int mode = mLocalManager.getBluetoothManager().getMode();
|
||||
if (mode != BluetoothDevice.MODE_DISCOVERABLE) return;
|
||||
|
||||
long currentTimestamp = System.currentTimeMillis();
|
||||
long endTimestamp = mLocalManager.getSharedPreferences().getLong(
|
||||
SHARED_PREFERENCES_KEY_DISCOVERABLE_END_TIMESTAMP, 0);
|
||||
|
||||
if (currentTimestamp > endTimestamp) {
|
||||
// We're still in discoverable mode, but maybe there isn't a timeout.
|
||||
mCheckBoxPreference.setSummaryOn(null);
|
||||
return;
|
||||
}
|
||||
|
||||
String formattedTimeLeft = String.valueOf((endTimestamp - currentTimestamp) / 1000);
|
||||
|
||||
mCheckBoxPreference.setSummaryOn(
|
||||
mContext.getResources().getString(R.string.bluetooth_is_discoverable,
|
||||
formattedTimeLeft));
|
||||
|
||||
synchronized (this) {
|
||||
mUiHandler.removeCallbacks(mUpdateCountdownSummaryRunnable);
|
||||
mUiHandler.postDelayed(mUpdateCountdownSummaryRunnable, 1000);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
149
src/com/android/settings/bluetooth/BluetoothEnabler.java
Normal file
@@ -0,0 +1,149 @@
|
||||
/*
|
||||
* Copyright (C) 2008 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package com.android.settings.bluetooth;
|
||||
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.bluetooth.LocalBluetoothManager.ExtendedBluetoothState;
|
||||
|
||||
import android.content.BroadcastReceiver;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.IntentFilter;
|
||||
import android.preference.Preference;
|
||||
import android.preference.CheckBoxPreference;
|
||||
import android.text.TextUtils;
|
||||
import android.util.Config;
|
||||
|
||||
/**
|
||||
* BluetoothEnabler is a helper to manage the Bluetooth on/off checkbox
|
||||
* preference. It is turns on/off Bluetooth and ensures the summary of the
|
||||
* preference reflects the current state.
|
||||
*/
|
||||
public class BluetoothEnabler implements Preference.OnPreferenceChangeListener {
|
||||
|
||||
private static final boolean LOCAL_LOGD = Config.LOGD || false;
|
||||
private static final String TAG = "BluetoothEnabler";
|
||||
|
||||
private final Context mContext;
|
||||
private final CheckBoxPreference mCheckBoxPreference;
|
||||
private final CharSequence mOriginalSummary;
|
||||
|
||||
private final LocalBluetoothManager mLocalManager;
|
||||
|
||||
private final BroadcastReceiver mReceiver = new BroadcastReceiver() {
|
||||
@Override
|
||||
public void onReceive(Context context, Intent intent) {
|
||||
handleStateChanged(mLocalManager.getBluetoothState());
|
||||
}
|
||||
};
|
||||
|
||||
public BluetoothEnabler(Context context, CheckBoxPreference checkBoxPreference) {
|
||||
mContext = context;
|
||||
mCheckBoxPreference = checkBoxPreference;
|
||||
|
||||
mOriginalSummary = checkBoxPreference.getSummary();
|
||||
checkBoxPreference.setPersistent(false);
|
||||
|
||||
mLocalManager = LocalBluetoothManager.getInstance(context);
|
||||
if (mLocalManager == null) {
|
||||
// Bluetooth not supported
|
||||
checkBoxPreference.setEnabled(false);
|
||||
}
|
||||
}
|
||||
|
||||
public void resume() {
|
||||
if (mLocalManager == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
ExtendedBluetoothState state = mLocalManager.getBluetoothState();
|
||||
// This is the widget enabled state, not the preference toggled state
|
||||
mCheckBoxPreference.setEnabled(state == ExtendedBluetoothState.ENABLED ||
|
||||
state == ExtendedBluetoothState.DISABLED);
|
||||
// BT state is not a sticky broadcast, so set it manually
|
||||
handleStateChanged(state);
|
||||
|
||||
mContext.registerReceiver(mReceiver,
|
||||
new IntentFilter(LocalBluetoothManager.EXTENDED_BLUETOOTH_STATE_CHANGED_ACTION));
|
||||
mCheckBoxPreference.setOnPreferenceChangeListener(this);
|
||||
}
|
||||
|
||||
public void pause() {
|
||||
if (mLocalManager == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
mContext.unregisterReceiver(mReceiver);
|
||||
mCheckBoxPreference.setOnPreferenceChangeListener(null);
|
||||
}
|
||||
|
||||
public boolean onPreferenceChange(Preference preference, Object value) {
|
||||
// Turn on/off BT
|
||||
setEnabled((Boolean) value);
|
||||
|
||||
// Don't update UI to opposite state until we're sure
|
||||
return false;
|
||||
}
|
||||
|
||||
private void setEnabled(final boolean enable) {
|
||||
// Disable preference
|
||||
mCheckBoxPreference.setEnabled(false);
|
||||
|
||||
mLocalManager.setBluetoothEnabled(enable);
|
||||
}
|
||||
|
||||
private void handleStateChanged(ExtendedBluetoothState state) {
|
||||
|
||||
if (state == ExtendedBluetoothState.DISABLED || state == ExtendedBluetoothState.ENABLED) {
|
||||
mCheckBoxPreference.setChecked(state == ExtendedBluetoothState.ENABLED);
|
||||
mCheckBoxPreference
|
||||
.setSummary(state == ExtendedBluetoothState.DISABLED ? mOriginalSummary : null);
|
||||
|
||||
mCheckBoxPreference.setEnabled(isEnabledByDependency());
|
||||
|
||||
} else if (state == ExtendedBluetoothState.ENABLING ||
|
||||
state == ExtendedBluetoothState.DISABLING) {
|
||||
mCheckBoxPreference.setSummary(state == ExtendedBluetoothState.ENABLING
|
||||
? R.string.wifi_starting
|
||||
: R.string.wifi_stopping);
|
||||
|
||||
} else if (state == ExtendedBluetoothState.UNKNOWN) {
|
||||
mCheckBoxPreference.setChecked(false);
|
||||
mCheckBoxPreference.setSummary(R.string.wifi_error);
|
||||
mCheckBoxPreference.setEnabled(true);
|
||||
}
|
||||
}
|
||||
|
||||
private boolean isEnabledByDependency() {
|
||||
Preference dep = getDependencyPreference();
|
||||
if (dep == null) {
|
||||
return true;
|
||||
}
|
||||
|
||||
return !dep.shouldDisableDependents();
|
||||
}
|
||||
|
||||
private Preference getDependencyPreference() {
|
||||
String depKey = mCheckBoxPreference.getDependency();
|
||||
if (TextUtils.isEmpty(depKey)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return mCheckBoxPreference.getPreferenceManager().findPreference(depKey);
|
||||
}
|
||||
|
||||
}
|
159
src/com/android/settings/bluetooth/BluetoothEventRedirector.java
Normal file
@@ -0,0 +1,159 @@
|
||||
/*
|
||||
* Copyright (C) 2008 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package com.android.settings.bluetooth;
|
||||
|
||||
import com.android.settings.bluetooth.LocalBluetoothManager.ExtendedBluetoothState;
|
||||
|
||||
import android.bluetooth.BluetoothA2dp;
|
||||
import android.bluetooth.BluetoothDevice;
|
||||
import android.bluetooth.BluetoothHeadset;
|
||||
import android.bluetooth.BluetoothIntent;
|
||||
import android.bluetooth.IBluetoothDeviceCallback;
|
||||
import android.content.BroadcastReceiver;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.IntentFilter;
|
||||
import android.os.Handler;
|
||||
import android.util.Log;
|
||||
|
||||
/**
|
||||
* BluetoothEventRedirector receives broadcasts and callbacks from the Bluetooth
|
||||
* API and dispatches the event on the UI thread to the right class in the
|
||||
* Settings.
|
||||
*/
|
||||
public class BluetoothEventRedirector {
|
||||
private static final String TAG = "BluetoothEventRedirector";
|
||||
private static final boolean V = LocalBluetoothManager.V;
|
||||
|
||||
private LocalBluetoothManager mManager;
|
||||
private Handler mUiHandler = new Handler();
|
||||
|
||||
private IBluetoothDeviceCallback mBtDevCallback = new IBluetoothDeviceCallback.Stub() {
|
||||
public void onCreateBondingResult(final String address, final int result) {
|
||||
if (V) {
|
||||
Log.v(TAG, "onCreateBondingResult(" + address + ", " + result + ")");
|
||||
}
|
||||
|
||||
mUiHandler.post(new Runnable() {
|
||||
public void run() {
|
||||
boolean wasSuccess = result == BluetoothDevice.RESULT_SUCCESS;
|
||||
LocalBluetoothDeviceManager deviceManager = mManager.getLocalDeviceManager();
|
||||
deviceManager.onBondingStateChanged(address, wasSuccess);
|
||||
if (!wasSuccess) {
|
||||
deviceManager.onBondingError(address);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public void onEnableResult(int result) { }
|
||||
public void onGetRemoteServiceChannelResult(String address, int channel) { }
|
||||
};
|
||||
|
||||
private BroadcastReceiver mBroadcastReceiver = new BroadcastReceiver() {
|
||||
@Override
|
||||
public void onReceive(Context context, Intent intent) {
|
||||
if (V) {
|
||||
Log.v(TAG, "Received " + intent.getAction());
|
||||
}
|
||||
|
||||
String action = intent.getAction();
|
||||
String address = intent.getStringExtra(BluetoothIntent.ADDRESS);
|
||||
|
||||
if (action.equals(BluetoothIntent.ENABLED_ACTION)) {
|
||||
mManager.setBluetoothStateInt(ExtendedBluetoothState.ENABLED);
|
||||
} else if (action.equals(BluetoothIntent.DISABLED_ACTION)) {
|
||||
mManager.setBluetoothStateInt(ExtendedBluetoothState.DISABLED);
|
||||
|
||||
} else if (action.equals(BluetoothIntent.DISCOVERY_STARTED_ACTION)) {
|
||||
mManager.onScanningStateChanged(true);
|
||||
} else if (action.equals(BluetoothIntent.DISCOVERY_COMPLETED_ACTION)) {
|
||||
mManager.onScanningStateChanged(false);
|
||||
|
||||
} else if (action.equals(BluetoothIntent.REMOTE_DEVICE_FOUND_ACTION)) {
|
||||
short rssi = intent.getShortExtra(BluetoothIntent.RSSI, Short.MIN_VALUE);
|
||||
mManager.getLocalDeviceManager().onDeviceAppeared(address, rssi);
|
||||
} else if (action.equals(BluetoothIntent.REMOTE_DEVICE_DISAPPEARED_ACTION)) {
|
||||
mManager.getLocalDeviceManager().onDeviceDisappeared(address);
|
||||
} else if (action.equals(BluetoothIntent.REMOTE_NAME_UPDATED_ACTION)) {
|
||||
mManager.getLocalDeviceManager().onDeviceNameUpdated(address);
|
||||
|
||||
} else if (action.equals(BluetoothIntent.BONDING_CREATED_ACTION)) {
|
||||
mManager.getLocalDeviceManager().onBondingStateChanged(address, true);
|
||||
} else if (action.equals(BluetoothIntent.BONDING_REMOVED_ACTION)) {
|
||||
mManager.getLocalDeviceManager().onBondingStateChanged(address, false);
|
||||
|
||||
} else if (action.equals(BluetoothIntent.HEADSET_STATE_CHANGED_ACTION)) {
|
||||
mManager.getLocalDeviceManager().onProfileStateChanged(address);
|
||||
|
||||
int newState = intent.getIntExtra(BluetoothIntent.HEADSET_STATE, 0);
|
||||
int oldState = intent.getIntExtra(BluetoothIntent.HEADSET_PREVIOUS_STATE, 0);
|
||||
if (newState == BluetoothHeadset.STATE_DISCONNECTED &&
|
||||
oldState == BluetoothHeadset.STATE_CONNECTING) {
|
||||
mManager.getLocalDeviceManager().onConnectingError(address);
|
||||
}
|
||||
|
||||
} else if (action.equals(BluetoothA2dp.SINK_STATE_CHANGED_ACTION)) {
|
||||
mManager.getLocalDeviceManager().onProfileStateChanged(address);
|
||||
|
||||
int newState = intent.getIntExtra(BluetoothA2dp.SINK_STATE, 0);
|
||||
int oldState = intent.getIntExtra(BluetoothA2dp.SINK_PREVIOUS_STATE, 0);
|
||||
if (newState == BluetoothA2dp.STATE_DISCONNECTED &&
|
||||
oldState == BluetoothA2dp.STATE_CONNECTING) {
|
||||
mManager.getLocalDeviceManager().onConnectingError(address);
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
public BluetoothEventRedirector(LocalBluetoothManager localBluetoothManager) {
|
||||
mManager = localBluetoothManager;
|
||||
}
|
||||
|
||||
public void start() {
|
||||
IntentFilter filter = new IntentFilter();
|
||||
|
||||
// Bluetooth on/off broadcasts
|
||||
filter.addAction(BluetoothIntent.ENABLED_ACTION);
|
||||
filter.addAction(BluetoothIntent.DISABLED_ACTION);
|
||||
|
||||
// Discovery broadcasts
|
||||
filter.addAction(BluetoothIntent.DISCOVERY_STARTED_ACTION);
|
||||
filter.addAction(BluetoothIntent.DISCOVERY_COMPLETED_ACTION);
|
||||
filter.addAction(BluetoothIntent.REMOTE_DEVICE_DISAPPEARED_ACTION);
|
||||
filter.addAction(BluetoothIntent.REMOTE_DEVICE_FOUND_ACTION);
|
||||
filter.addAction(BluetoothIntent.REMOTE_NAME_UPDATED_ACTION);
|
||||
|
||||
// Pairing broadcasts
|
||||
filter.addAction(BluetoothIntent.BONDING_CREATED_ACTION);
|
||||
filter.addAction(BluetoothIntent.BONDING_REMOVED_ACTION);
|
||||
|
||||
// Fine-grained state broadcasts
|
||||
filter.addAction(BluetoothA2dp.SINK_STATE_CHANGED_ACTION);
|
||||
filter.addAction(BluetoothIntent.HEADSET_STATE_CHANGED_ACTION);
|
||||
|
||||
mManager.getContext().registerReceiver(mBroadcastReceiver, filter);
|
||||
}
|
||||
|
||||
public void stop() {
|
||||
mManager.getContext().unregisterReceiver(mBroadcastReceiver);
|
||||
}
|
||||
|
||||
public IBluetoothDeviceCallback getBluetoothDeviceCallback() {
|
||||
return mBtDevCallback;
|
||||
}
|
||||
}
|
@@ -0,0 +1,79 @@
|
||||
/*
|
||||
* Copyright (C) 2008 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package com.android.settings.bluetooth;
|
||||
|
||||
import android.bluetooth.BluetoothDevice;
|
||||
import android.bluetooth.BluetoothIntent;
|
||||
import android.content.BroadcastReceiver;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.IntentFilter;
|
||||
import android.preference.EditTextPreference;
|
||||
import android.preference.PreferenceManager;
|
||||
import android.util.AttributeSet;
|
||||
|
||||
/**
|
||||
* BluetoothNamePreference is the preference type for editing the device's
|
||||
* Bluetooth name. It asks the user for a name, and persists it via the
|
||||
* Bluetooth API.
|
||||
*/
|
||||
public class BluetoothNamePreference extends EditTextPreference {
|
||||
private static final String TAG = "BluetoothNamePreference";
|
||||
|
||||
private LocalBluetoothManager mLocalManager;
|
||||
|
||||
private BroadcastReceiver mReceiver = new BroadcastReceiver() {
|
||||
@Override
|
||||
public void onReceive(Context context, Intent intent) {
|
||||
setSummaryToName();
|
||||
}
|
||||
};
|
||||
|
||||
public BluetoothNamePreference(Context context, AttributeSet attrs) {
|
||||
super(context, attrs);
|
||||
|
||||
mLocalManager = LocalBluetoothManager.getInstance(context);
|
||||
|
||||
setSummaryToName();
|
||||
}
|
||||
|
||||
public void resume() {
|
||||
IntentFilter filter = new IntentFilter();
|
||||
filter.addAction(BluetoothIntent.ENABLED_ACTION);
|
||||
filter.addAction(BluetoothIntent.NAME_CHANGED_ACTION);
|
||||
getContext().registerReceiver(mReceiver, filter);
|
||||
}
|
||||
|
||||
public void pause() {
|
||||
getContext().unregisterReceiver(mReceiver);
|
||||
}
|
||||
|
||||
private void setSummaryToName() {
|
||||
BluetoothDevice manager = mLocalManager.getBluetoothManager();
|
||||
if (manager.isEnabled()) {
|
||||
setSummary(manager.getName());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean persistString(String value) {
|
||||
BluetoothDevice manager = mLocalManager.getBluetoothManager();
|
||||
manager.setName(value);
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
112
src/com/android/settings/bluetooth/BluetoothPinDialog.java
Normal file
@@ -0,0 +1,112 @@
|
||||
/*
|
||||
* Copyright (C) 2008 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package com.android.settings.bluetooth;
|
||||
|
||||
import android.bluetooth.BluetoothDevice;
|
||||
import android.bluetooth.BluetoothIntent;
|
||||
import android.content.DialogInterface;
|
||||
import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
import android.text.InputFilter;
|
||||
import android.text.method.DigitsKeyListener;
|
||||
import android.util.Log;
|
||||
import android.view.View;
|
||||
import android.widget.EditText;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.android.internal.app.AlertActivity;
|
||||
import com.android.internal.app.AlertController;
|
||||
import com.android.settings.R;
|
||||
|
||||
/**
|
||||
* BluetoothPinDialog asks the user to enter a PIN for pairing with a remote
|
||||
* Bluetooth device. It is an activity that appears as a dialog.
|
||||
*/
|
||||
public class BluetoothPinDialog extends AlertActivity implements DialogInterface.OnClickListener {
|
||||
private static final String TAG = "BluetoothPinDialog";
|
||||
|
||||
private LocalBluetoothManager mLocalManager;
|
||||
private String mAddress;
|
||||
private EditText mPinView;
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
|
||||
Intent intent = getIntent();
|
||||
if (!intent.getAction().equals(BluetoothIntent.PAIRING_REQUEST_ACTION))
|
||||
{
|
||||
Log.e(TAG,
|
||||
"Error: this activity may be started only with intent " +
|
||||
BluetoothIntent.PAIRING_REQUEST_ACTION);
|
||||
finish();
|
||||
}
|
||||
|
||||
mLocalManager = LocalBluetoothManager.getInstance(this);
|
||||
mAddress = intent.getStringExtra(BluetoothIntent.ADDRESS);
|
||||
|
||||
// Set up the "dialog"
|
||||
final AlertController.AlertParams p = mAlertParams;
|
||||
p.mIconId = android.R.drawable.ic_dialog_info;
|
||||
p.mTitle = getString(R.string.bluetooth_pin_entry);
|
||||
p.mView = createView();
|
||||
p.mPositiveButtonText = getString(android.R.string.ok);
|
||||
p.mPositiveButtonListener = this;
|
||||
p.mNegativeButtonText = getString(android.R.string.cancel);
|
||||
p.mNegativeButtonListener = this;
|
||||
setupAlert();
|
||||
}
|
||||
|
||||
private View createView() {
|
||||
View view = getLayoutInflater().inflate(R.layout.bluetooth_pin_entry, null);
|
||||
|
||||
String name = mLocalManager.getLocalDeviceManager().getName(mAddress);
|
||||
TextView messageView = (TextView) view.findViewById(R.id.message);
|
||||
messageView.setText(getString(R.string.bluetooth_enter_pin_msg, name));
|
||||
|
||||
mPinView = (EditText) view.findViewById(R.id.text);
|
||||
|
||||
return view;
|
||||
}
|
||||
|
||||
private void onPair(String pin) {
|
||||
byte[] pinBytes = BluetoothDevice.convertPinToBytes(pin);
|
||||
|
||||
if (pinBytes == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
mLocalManager.getBluetoothManager().setPin(mAddress, pinBytes);
|
||||
}
|
||||
|
||||
private void onCancel() {
|
||||
mLocalManager.getBluetoothManager().cancelPin(mAddress);
|
||||
}
|
||||
|
||||
public void onClick(DialogInterface dialog, int which) {
|
||||
switch (which) {
|
||||
case DialogInterface.BUTTON_POSITIVE:
|
||||
onPair(mPinView.getText().toString());
|
||||
break;
|
||||
|
||||
case DialogInterface.BUTTON_NEGATIVE:
|
||||
onCancel();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
96
src/com/android/settings/bluetooth/BluetoothPinRequest.java
Normal file
@@ -0,0 +1,96 @@
|
||||
/*
|
||||
* Copyright (C) 2008 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package com.android.settings.bluetooth;
|
||||
|
||||
import com.android.settings.R;
|
||||
|
||||
import android.app.Notification;
|
||||
import android.app.NotificationManager;
|
||||
import android.app.PendingIntent;
|
||||
import android.bluetooth.BluetoothDevice;
|
||||
import android.bluetooth.BluetoothIntent;
|
||||
import android.content.BroadcastReceiver;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.res.Resources;
|
||||
import android.text.TextUtils;
|
||||
|
||||
/**
|
||||
* BluetoothPinRequest is a receiver for any Bluetooth pairing PIN request. It
|
||||
* checks if the Bluetooth Settings is currently visible and brings up the PIN
|
||||
* entry dialog. Otherwise it puts a Notification in the status bar, which can
|
||||
* be clicked to bring up the PIN entry dialog.
|
||||
*/
|
||||
public class BluetoothPinRequest extends BroadcastReceiver {
|
||||
|
||||
public static final int NOTIFICATION_ID = android.R.drawable.stat_sys_data_bluetooth;
|
||||
|
||||
@Override
|
||||
public void onReceive(Context context, Intent intent) {
|
||||
String action = intent.getAction();
|
||||
if (action.equals(BluetoothIntent.PAIRING_REQUEST_ACTION)) {
|
||||
|
||||
LocalBluetoothManager localManager = LocalBluetoothManager.getInstance(context);
|
||||
|
||||
String address = intent.getStringExtra(BluetoothIntent.ADDRESS);
|
||||
Intent pinIntent = new Intent();
|
||||
pinIntent.setClass(context, BluetoothPinDialog.class);
|
||||
pinIntent.putExtra(BluetoothIntent.ADDRESS, address);
|
||||
pinIntent.setAction(BluetoothIntent.PAIRING_REQUEST_ACTION);
|
||||
pinIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||
|
||||
if (localManager.getForegroundActivity() != null) {
|
||||
// Since the BT-related activity is in the foreground, just open the dialog
|
||||
context.startActivity(pinIntent);
|
||||
|
||||
} else {
|
||||
|
||||
// Put up a notification that leads to the dialog
|
||||
Resources res = context.getResources();
|
||||
Notification notification = new Notification(
|
||||
android.R.drawable.stat_sys_data_bluetooth,
|
||||
res.getString(R.string.bluetooth_notif_ticker),
|
||||
System.currentTimeMillis());
|
||||
|
||||
PendingIntent pending = PendingIntent.getActivity(context, 0,
|
||||
pinIntent, PendingIntent.FLAG_ONE_SHOT);
|
||||
|
||||
String name = intent.getStringExtra(BluetoothIntent.NAME);
|
||||
if (TextUtils.isEmpty(name)) {
|
||||
name = localManager.getLocalDeviceManager().getName(address);
|
||||
}
|
||||
|
||||
notification.setLatestEventInfo(context,
|
||||
res.getString(R.string.bluetooth_notif_title),
|
||||
res.getString(R.string.bluetooth_notif_message) + name,
|
||||
pending);
|
||||
notification.flags |= Notification.FLAG_AUTO_CANCEL;
|
||||
|
||||
NotificationManager manager = (NotificationManager)
|
||||
context.getSystemService(Context.NOTIFICATION_SERVICE);
|
||||
manager.notify(NOTIFICATION_ID, notification);
|
||||
}
|
||||
|
||||
} else if (action.equals(BluetoothIntent.PAIRING_CANCEL_ACTION)) {
|
||||
|
||||
// Remove the notification
|
||||
NotificationManager manager = (NotificationManager) context
|
||||
.getSystemService(Context.NOTIFICATION_SERVICE);
|
||||
manager.cancel(NOTIFICATION_ID);
|
||||
}
|
||||
}
|
||||
}
|
258
src/com/android/settings/bluetooth/BluetoothSettings.java
Normal file
@@ -0,0 +1,258 @@
|
||||
/*
|
||||
* Copyright (C) 2008 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package com.android.settings.bluetooth;
|
||||
|
||||
import com.android.settings.ProgressCategory;
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.bluetooth.LocalBluetoothManager.ExtendedBluetoothState;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.WeakHashMap;
|
||||
|
||||
import android.content.BroadcastReceiver;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.IntentFilter;
|
||||
import android.os.Bundle;
|
||||
import android.preference.CheckBoxPreference;
|
||||
import android.preference.Preference;
|
||||
import android.preference.PreferenceActivity;
|
||||
import android.preference.PreferenceScreen;
|
||||
import android.view.ContextMenu;
|
||||
import android.view.Menu;
|
||||
import android.view.MenuItem;
|
||||
import android.view.View;
|
||||
import android.view.ContextMenu.ContextMenuInfo;
|
||||
import android.widget.AdapterView.AdapterContextMenuInfo;
|
||||
|
||||
/**
|
||||
* BluetoothSettings is the Settings screen for Bluetooth configuration and
|
||||
* connection management.
|
||||
*/
|
||||
public class BluetoothSettings extends PreferenceActivity
|
||||
implements LocalBluetoothManager.Callback {
|
||||
|
||||
private static final String TAG = "BluetoothSettings";
|
||||
|
||||
private static final int MENU_SCAN = Menu.FIRST;
|
||||
|
||||
private static final String KEY_BT_CHECKBOX = "bt_checkbox";
|
||||
private static final String KEY_BT_DISCOVERABLE = "bt_discoverable";
|
||||
private static final String KEY_BT_DEVICE_LIST = "bt_device_list";
|
||||
private static final String KEY_BT_NAME = "bt_name";
|
||||
private static final String KEY_BT_SCAN = "bt_scan";
|
||||
|
||||
private LocalBluetoothManager mLocalManager;
|
||||
|
||||
private BluetoothEnabler mEnabler;
|
||||
private BluetoothDiscoverableEnabler mDiscoverableEnabler;
|
||||
|
||||
private BluetoothNamePreference mNamePreference;
|
||||
|
||||
private ProgressCategory mDeviceList;
|
||||
|
||||
private WeakHashMap<LocalBluetoothDevice, BluetoothDevicePreference> mDevicePreferenceMap =
|
||||
new WeakHashMap<LocalBluetoothDevice, BluetoothDevicePreference>();
|
||||
|
||||
private final BroadcastReceiver mReceiver = new BroadcastReceiver() {
|
||||
@Override
|
||||
public void onReceive(Context context, Intent intent) {
|
||||
// TODO: put this in callback instead of receiving
|
||||
onBluetoothStateChanged(mLocalManager.getBluetoothState());
|
||||
}
|
||||
};
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
|
||||
mLocalManager = LocalBluetoothManager.getInstance(this);
|
||||
if (mLocalManager == null) finish();
|
||||
|
||||
addPreferencesFromResource(R.xml.bluetooth_settings);
|
||||
|
||||
mEnabler = new BluetoothEnabler(
|
||||
this,
|
||||
(CheckBoxPreference) findPreference(KEY_BT_CHECKBOX));
|
||||
|
||||
mDiscoverableEnabler = new BluetoothDiscoverableEnabler(
|
||||
this,
|
||||
(CheckBoxPreference) findPreference(KEY_BT_DISCOVERABLE));
|
||||
|
||||
mNamePreference = (BluetoothNamePreference) findPreference(KEY_BT_NAME);
|
||||
|
||||
mDeviceList = (ProgressCategory) findPreference(KEY_BT_DEVICE_LIST);
|
||||
|
||||
registerForContextMenu(getListView());
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onResume() {
|
||||
super.onResume();
|
||||
|
||||
// Repopulate (which isn't too bad since it's cached in the settings
|
||||
// bluetooth manager
|
||||
mDevicePreferenceMap.clear();
|
||||
mDeviceList.removeAll();
|
||||
addDevices();
|
||||
|
||||
mEnabler.resume();
|
||||
mDiscoverableEnabler.resume();
|
||||
mNamePreference.resume();
|
||||
mLocalManager.registerCallback(this);
|
||||
|
||||
mLocalManager.startScanning(false);
|
||||
|
||||
registerReceiver(mReceiver,
|
||||
new IntentFilter(LocalBluetoothManager.EXTENDED_BLUETOOTH_STATE_CHANGED_ACTION));
|
||||
|
||||
mLocalManager.setForegroundActivity(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onPause() {
|
||||
super.onPause();
|
||||
|
||||
mLocalManager.setForegroundActivity(null);
|
||||
|
||||
unregisterReceiver(mReceiver);
|
||||
|
||||
mLocalManager.unregisterCallback(this);
|
||||
mNamePreference.pause();
|
||||
mDiscoverableEnabler.pause();
|
||||
mEnabler.pause();
|
||||
}
|
||||
|
||||
private void addDevices() {
|
||||
List<LocalBluetoothDevice> devices = mLocalManager.getLocalDeviceManager().getDevicesCopy();
|
||||
for (LocalBluetoothDevice device : devices) {
|
||||
onDeviceAdded(device);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCreateOptionsMenu(Menu menu) {
|
||||
menu.add(0, MENU_SCAN, 0, R.string.bluetooth_scan_for_devices)
|
||||
.setIcon(R.drawable.ic_menu_refresh)
|
||||
.setAlphabeticShortcut('r');
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onPrepareOptionsMenu(Menu menu) {
|
||||
menu.findItem(MENU_SCAN).setEnabled(mLocalManager.getBluetoothManager().isEnabled());
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onOptionsItemSelected(MenuItem item) {
|
||||
switch (item.getItemId()) {
|
||||
|
||||
case MENU_SCAN:
|
||||
mLocalManager.startScanning(true);
|
||||
return true;
|
||||
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen,
|
||||
Preference preference) {
|
||||
|
||||
if (KEY_BT_SCAN.equals(preference.getKey())) {
|
||||
mLocalManager.startScanning(true);
|
||||
return true;
|
||||
}
|
||||
|
||||
if (preference instanceof BluetoothDevicePreference) {
|
||||
BluetoothDevicePreference btPreference = (BluetoothDevicePreference) preference;
|
||||
btPreference.getDevice().onClicked();
|
||||
return true;
|
||||
}
|
||||
|
||||
return super.onPreferenceTreeClick(preferenceScreen, preference);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCreateContextMenu(ContextMenu menu, View v,
|
||||
ContextMenuInfo menuInfo) {
|
||||
LocalBluetoothDevice device = getDeviceFromMenuInfo(menuInfo);
|
||||
if (device == null) return;
|
||||
|
||||
device.onCreateContextMenu(menu);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onContextItemSelected(MenuItem item) {
|
||||
LocalBluetoothDevice device = getDeviceFromMenuInfo(item.getMenuInfo());
|
||||
if (device == null) return false;
|
||||
|
||||
device.onContextItemSelected(item);
|
||||
return true;
|
||||
}
|
||||
|
||||
private LocalBluetoothDevice getDeviceFromMenuInfo(ContextMenuInfo menuInfo) {
|
||||
if ((menuInfo == null) || !(menuInfo instanceof AdapterContextMenuInfo)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
AdapterContextMenuInfo adapterMenuInfo = (AdapterContextMenuInfo) menuInfo;
|
||||
Preference pref = (Preference) getPreferenceScreen().getRootAdapter().getItem(
|
||||
adapterMenuInfo.position);
|
||||
if (pref == null || !(pref instanceof BluetoothDevicePreference)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return ((BluetoothDevicePreference) pref).getDevice();
|
||||
}
|
||||
|
||||
public void onDeviceAdded(LocalBluetoothDevice device) {
|
||||
|
||||
if (mDevicePreferenceMap.get(device) != null) {
|
||||
throw new IllegalStateException("Got onDeviceAdded, but device already exists");
|
||||
}
|
||||
|
||||
createDevicePreference(device);
|
||||
}
|
||||
|
||||
private void createDevicePreference(LocalBluetoothDevice device) {
|
||||
BluetoothDevicePreference preference = new BluetoothDevicePreference(this, device);
|
||||
mDeviceList.addPreference(preference);
|
||||
mDevicePreferenceMap.put(device, preference);
|
||||
}
|
||||
|
||||
public void onDeviceDeleted(LocalBluetoothDevice device) {
|
||||
BluetoothDevicePreference preference = mDevicePreferenceMap.remove(device);
|
||||
if (preference != null) {
|
||||
mDeviceList.removePreference(preference);
|
||||
}
|
||||
}
|
||||
|
||||
public void onScanningStateChanged(boolean started) {
|
||||
mDeviceList.setProgress(started);
|
||||
}
|
||||
|
||||
private void onBluetoothStateChanged(ExtendedBluetoothState bluetoothState) {
|
||||
// When bluetooth is enabled (and we are in the activity, which we are),
|
||||
// we should start a scan
|
||||
if (bluetoothState == ExtendedBluetoothState.ENABLED) {
|
||||
mLocalManager.startScanning(false);
|
||||
}
|
||||
}
|
||||
}
|
@@ -0,0 +1,297 @@
|
||||
/*
|
||||
* Copyright (C) 2008 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package com.android.settings.bluetooth;
|
||||
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.bluetooth.LocalBluetoothProfileManager.Profile;
|
||||
|
||||
import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
import android.preference.CheckBoxPreference;
|
||||
import android.preference.Preference;
|
||||
import android.preference.PreferenceActivity;
|
||||
import android.preference.PreferenceGroup;
|
||||
import android.preference.PreferenceScreen;
|
||||
import android.text.TextUtils;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
import android.util.Log;
|
||||
|
||||
/**
|
||||
* ConnectSpecificProfilesActivity presents the user with all of the profiles
|
||||
* for a particular device, and allows him to choose which should be connected
|
||||
* (or disconnected).
|
||||
*/
|
||||
public class ConnectSpecificProfilesActivity extends PreferenceActivity
|
||||
implements LocalBluetoothDevice.Callback, Preference.OnPreferenceChangeListener {
|
||||
private static final String TAG = "ConnectSpecificProfilesActivity";
|
||||
|
||||
private static final String KEY_ONLINE_MODE = "online_mode";
|
||||
private static final String KEY_TITLE = "title";
|
||||
private static final String KEY_PROFILE_CONTAINER = "profile_container";
|
||||
|
||||
public static final String EXTRA_ADDRESS = "address";
|
||||
|
||||
private LocalBluetoothManager mManager;
|
||||
private LocalBluetoothDevice mDevice;
|
||||
|
||||
private PreferenceGroup mProfileContainer;
|
||||
private CheckBoxPreference mOnlineModePreference;
|
||||
|
||||
/**
|
||||
* The current mode of this activity and its checkboxes (either online mode
|
||||
* or offline mode). In online mode, user interactions with the profile
|
||||
* checkboxes will also toggle the profile's connectivity. In offline mode,
|
||||
* they will not, and only the preferred state will be saved for the
|
||||
* profile.
|
||||
*/
|
||||
private boolean mOnlineMode;
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
|
||||
String address;
|
||||
if (savedInstanceState != null) {
|
||||
address = savedInstanceState.getString(EXTRA_ADDRESS);
|
||||
} else {
|
||||
Intent intent = getIntent();
|
||||
address = intent.getStringExtra(EXTRA_ADDRESS);
|
||||
}
|
||||
|
||||
if (TextUtils.isEmpty(address)) {
|
||||
Log.w(TAG, "Activity started without address");
|
||||
finish();
|
||||
}
|
||||
|
||||
mManager = LocalBluetoothManager.getInstance(this);
|
||||
mDevice = mManager.getLocalDeviceManager().findDevice(address);
|
||||
if (mDevice == null) {
|
||||
Log.w(TAG, "Device not found, cannot connect to it");
|
||||
finish();
|
||||
}
|
||||
|
||||
addPreferencesFromResource(R.xml.bluetooth_device_advanced);
|
||||
mProfileContainer = (PreferenceGroup) findPreference(KEY_PROFILE_CONTAINER);
|
||||
|
||||
// Set the title of the screen
|
||||
findPreference(KEY_TITLE).setTitle(
|
||||
getString(R.string.bluetooth_device_advanced_title, mDevice.getName()));
|
||||
|
||||
// Listen for check/uncheck of the online mode checkbox
|
||||
mOnlineModePreference = (CheckBoxPreference) findPreference(KEY_ONLINE_MODE);
|
||||
mOnlineModePreference.setOnPreferenceChangeListener(this);
|
||||
|
||||
// Add a preference for each profile
|
||||
addPreferencesForProfiles();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onSaveInstanceState(Bundle outState) {
|
||||
super.onSaveInstanceState(outState);
|
||||
|
||||
outState.putString(EXTRA_ADDRESS, mDevice.getAddress());
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onResume() {
|
||||
super.onResume();
|
||||
|
||||
mManager.setForegroundActivity(this);
|
||||
mDevice.registerCallback(this);
|
||||
|
||||
refresh(true);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onPause() {
|
||||
super.onPause();
|
||||
|
||||
mDevice.unregisterCallback(this);
|
||||
mManager.setForegroundActivity(null);
|
||||
}
|
||||
|
||||
private void addPreferencesForProfiles() {
|
||||
for (Profile profile : mDevice.getProfiles()) {
|
||||
Preference pref = createProfilePreference(profile);
|
||||
mProfileContainer.addPreference(pref);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a checkbox preference for the particular profile. The key will be
|
||||
* the profile's name.
|
||||
*
|
||||
* @param profile The profile for which the preference controls.
|
||||
* @return A preference that allows the user to choose whether this profile
|
||||
* will be connected to.
|
||||
*/
|
||||
private CheckBoxPreference createProfilePreference(Profile profile) {
|
||||
CheckBoxPreference pref = new CheckBoxPreference(this);
|
||||
pref.setKey(profile.toString());
|
||||
pref.setTitle(profile.localizedString);
|
||||
pref.setPersistent(false);
|
||||
pref.setOnPreferenceChangeListener(this);
|
||||
|
||||
refreshProfilePreference(pref, profile);
|
||||
|
||||
return pref;
|
||||
}
|
||||
|
||||
public boolean onPreferenceChange(Preference preference, Object newValue) {
|
||||
String key = preference.getKey();
|
||||
if (TextUtils.isEmpty(key) || newValue == null) return true;
|
||||
|
||||
if (key.equals(KEY_ONLINE_MODE)) {
|
||||
onOnlineModeCheckedStateChanged((Boolean) newValue);
|
||||
|
||||
} else {
|
||||
Profile profile = getProfileOf(preference);
|
||||
if (profile == null) return false;
|
||||
onProfileCheckedStateChanged(profile, (Boolean) newValue);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
private void onOnlineModeCheckedStateChanged(boolean checked) {
|
||||
switchModes(checked, false);
|
||||
}
|
||||
|
||||
private void onProfileCheckedStateChanged(Profile profile, boolean checked) {
|
||||
if (mOnlineMode) {
|
||||
if (checked) {
|
||||
mDevice.connect(profile);
|
||||
} else {
|
||||
mDevice.disconnect(profile);
|
||||
}
|
||||
}
|
||||
|
||||
LocalBluetoothProfileManager.setPreferredProfile(this, mDevice.getAddress(), profile,
|
||||
checked);
|
||||
}
|
||||
|
||||
public void onDeviceAttributesChanged(LocalBluetoothDevice device) {
|
||||
refresh(false);
|
||||
}
|
||||
|
||||
private void refresh(boolean forceRefresh) {
|
||||
// The online mode could have changed
|
||||
updateOnlineMode(forceRefresh);
|
||||
refreshProfiles();
|
||||
refreshOnlineModePreference();
|
||||
}
|
||||
|
||||
private void updateOnlineMode(boolean force) {
|
||||
// Connected or Connecting (and Disconnecting, which is fine)
|
||||
boolean onlineMode = mDevice.isConnected() || mDevice.isBusy();
|
||||
switchModes(onlineMode, force);
|
||||
}
|
||||
|
||||
/**
|
||||
* Switches between online/offline mode.
|
||||
*
|
||||
* @param onlineMode Whether to be in online mode, or offline mode.
|
||||
*/
|
||||
private void switchModes(boolean onlineMode, boolean force) {
|
||||
if (mOnlineMode != onlineMode || force) {
|
||||
mOnlineMode = onlineMode;
|
||||
|
||||
if (onlineMode) {
|
||||
mDevice.connect();
|
||||
} else {
|
||||
mDevice.disconnect();
|
||||
}
|
||||
|
||||
refreshOnlineModePreference();
|
||||
}
|
||||
}
|
||||
|
||||
private void refreshOnlineModePreference() {
|
||||
mOnlineModePreference.setChecked(mOnlineMode);
|
||||
|
||||
/**
|
||||
* If the device is online, show status. Otherwise, show a summary that
|
||||
* describes what the checkbox does.
|
||||
*/
|
||||
mOnlineModePreference.setSummary(mOnlineMode ? mDevice.getSummary()
|
||||
: R.string.bluetooth_device_advanced_online_mode_summary);
|
||||
}
|
||||
|
||||
private void refreshProfiles() {
|
||||
for (Profile profile : mDevice.getProfiles()) {
|
||||
CheckBoxPreference profilePref =
|
||||
(CheckBoxPreference) findPreference(profile.toString());
|
||||
if (profilePref == null) continue;
|
||||
|
||||
refreshProfilePreference(profilePref, profile);
|
||||
}
|
||||
}
|
||||
|
||||
private void refreshProfilePreference(CheckBoxPreference profilePref, Profile profile) {
|
||||
String address = mDevice.getAddress();
|
||||
LocalBluetoothProfileManager profileManager = LocalBluetoothProfileManager
|
||||
.getProfileManager(mManager, profile);
|
||||
|
||||
int connectionStatus = profileManager.getConnectionStatus(address);
|
||||
|
||||
profilePref.setSummary(getProfileSummary(profileManager, profile, address,
|
||||
connectionStatus, mOnlineMode));
|
||||
|
||||
profilePref.setChecked(
|
||||
LocalBluetoothProfileManager.isPreferredProfile(this, address, profile));
|
||||
}
|
||||
|
||||
private Profile getProfileOf(Preference pref) {
|
||||
if (!(pref instanceof CheckBoxPreference)) return null;
|
||||
String key = pref.getKey();
|
||||
if (TextUtils.isEmpty(key)) return null;
|
||||
|
||||
try {
|
||||
return Profile.valueOf(pref.getKey());
|
||||
} catch (IllegalArgumentException e) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
private static int getProfileSummary(LocalBluetoothProfileManager profileManager,
|
||||
Profile profile, String address, int connectionStatus, boolean onlineMode) {
|
||||
if (!onlineMode || connectionStatus == SettingsBtStatus.CONNECTION_STATUS_DISCONNECTED) {
|
||||
return getProfileSummaryForSettingPreference(profile);
|
||||
} else {
|
||||
return profileManager.getSummary(address);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the summary that describes when checked, it will become a preferred profile.
|
||||
*
|
||||
* @param profile The profile to get the summary for.
|
||||
* @return The summary.
|
||||
*/
|
||||
private static final int getProfileSummaryForSettingPreference(Profile profile) {
|
||||
switch (profile) {
|
||||
case A2DP:
|
||||
return R.string.bluetooth_a2dp_profile_summary_use_for;
|
||||
case HEADSET:
|
||||
return R.string.bluetooth_headset_profile_summary_use_for;
|
||||
default:
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
558
src/com/android/settings/bluetooth/LocalBluetoothDevice.java
Normal file
@@ -0,0 +1,558 @@
|
||||
/*
|
||||
* Copyright (C) 2008 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package com.android.settings.bluetooth;
|
||||
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.bluetooth.LocalBluetoothProfileManager.Profile;
|
||||
|
||||
import android.app.AlertDialog;
|
||||
import android.bluetooth.BluetoothDevice;
|
||||
import android.bluetooth.BluetoothClass;
|
||||
import android.bluetooth.IBluetoothDeviceCallback;
|
||||
import android.content.Context;
|
||||
import android.content.DialogInterface;
|
||||
import android.content.Intent;
|
||||
import android.content.res.Resources;
|
||||
import android.os.IBinder;
|
||||
import android.os.RemoteException;
|
||||
import android.text.TextUtils;
|
||||
import android.view.ContextMenu;
|
||||
import android.view.Menu;
|
||||
import android.view.MenuItem;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* LocalBluetoothDevice represents a remote Bluetooth device. It contains
|
||||
* attributes of the device (such as the address, name, RSSI, etc.) and
|
||||
* functionality that can be performed on the device (connect, pair, disconnect,
|
||||
* etc.).
|
||||
*/
|
||||
public class LocalBluetoothDevice implements Comparable<LocalBluetoothDevice> {
|
||||
private static final String TAG = "LocalBluetoothDevice";
|
||||
|
||||
private static final int CONTEXT_ITEM_CONNECT = Menu.FIRST + 1;
|
||||
private static final int CONTEXT_ITEM_DISCONNECT = Menu.FIRST + 2;
|
||||
private static final int CONTEXT_ITEM_UNPAIR = Menu.FIRST + 3;
|
||||
private static final int CONTEXT_ITEM_CONNECT_ADVANCED = Menu.FIRST + 4;
|
||||
|
||||
private final String mAddress;
|
||||
private String mName;
|
||||
private short mRssi;
|
||||
private int mBtClass = BluetoothClass.ERROR;
|
||||
|
||||
private List<Profile> mProfiles = new ArrayList<Profile>();
|
||||
|
||||
private boolean mVisible;
|
||||
|
||||
private int mPairingStatus;
|
||||
|
||||
private final LocalBluetoothManager mLocalManager;
|
||||
|
||||
private List<Callback> mCallbacks = new ArrayList<Callback>();
|
||||
|
||||
/**
|
||||
* When we connect to multiple profiles, we only want to display a single
|
||||
* error even if they all fail. This tracks that state.
|
||||
*/
|
||||
private boolean mIsConnectingErrorPossible;
|
||||
|
||||
LocalBluetoothDevice(Context context, String address) {
|
||||
mLocalManager = LocalBluetoothManager.getInstance(context);
|
||||
if (mLocalManager == null) {
|
||||
throw new IllegalStateException(
|
||||
"Cannot use LocalBluetoothDevice without Bluetooth hardware");
|
||||
}
|
||||
|
||||
mAddress = address;
|
||||
|
||||
fillData();
|
||||
}
|
||||
|
||||
public void onClicked() {
|
||||
int pairingStatus = getPairingStatus();
|
||||
|
||||
if (isConnected()) {
|
||||
askDisconnect();
|
||||
} else if (pairingStatus == SettingsBtStatus.PAIRING_STATUS_PAIRED) {
|
||||
connect();
|
||||
} else if (pairingStatus == SettingsBtStatus.PAIRING_STATUS_UNPAIRED) {
|
||||
pair();
|
||||
}
|
||||
}
|
||||
|
||||
public void disconnect() {
|
||||
for (Profile profile : mProfiles) {
|
||||
disconnect(profile);
|
||||
}
|
||||
}
|
||||
|
||||
public void disconnect(Profile profile) {
|
||||
LocalBluetoothProfileManager profileManager =
|
||||
LocalBluetoothProfileManager.getProfileManager(mLocalManager, profile);
|
||||
int status = profileManager.getConnectionStatus(mAddress);
|
||||
if (SettingsBtStatus.isConnectionStatusConnected(status)) {
|
||||
profileManager.disconnect(mAddress);
|
||||
}
|
||||
}
|
||||
|
||||
public void askDisconnect() {
|
||||
Context context = mLocalManager.getForegroundActivity();
|
||||
if (context == null) {
|
||||
// Cannot ask, since we need an activity context
|
||||
disconnect();
|
||||
return;
|
||||
}
|
||||
|
||||
Resources res = context.getResources();
|
||||
|
||||
String name = getName();
|
||||
if (TextUtils.isEmpty(name)) {
|
||||
name = res.getString(R.string.bluetooth_device);
|
||||
}
|
||||
String message = res.getString(R.string.bluetooth_disconnect_blank, name);
|
||||
|
||||
DialogInterface.OnClickListener disconnectListener = new DialogInterface.OnClickListener() {
|
||||
public void onClick(DialogInterface dialog, int which) {
|
||||
disconnect();
|
||||
}
|
||||
};
|
||||
|
||||
AlertDialog ad = new AlertDialog.Builder(context)
|
||||
.setTitle(getName())
|
||||
.setMessage(message)
|
||||
.setPositiveButton(android.R.string.ok, disconnectListener)
|
||||
.setNegativeButton(android.R.string.cancel, null)
|
||||
.show();
|
||||
}
|
||||
|
||||
public void connect() {
|
||||
if (!ensurePaired()) return;
|
||||
|
||||
Context context = mLocalManager.getContext();
|
||||
boolean hasAtLeastOnePreferredProfile = false;
|
||||
for (Profile profile : mProfiles) {
|
||||
if (LocalBluetoothProfileManager.isPreferredProfile(context, mAddress, profile)) {
|
||||
hasAtLeastOnePreferredProfile = true;
|
||||
connect(profile);
|
||||
}
|
||||
}
|
||||
|
||||
if (!hasAtLeastOnePreferredProfile) {
|
||||
connectAndPreferAllProfiles();
|
||||
}
|
||||
}
|
||||
|
||||
private void connectAndPreferAllProfiles() {
|
||||
if (!ensurePaired()) return;
|
||||
|
||||
Context context = mLocalManager.getContext();
|
||||
for (Profile profile : mProfiles) {
|
||||
LocalBluetoothProfileManager.setPreferredProfile(context, mAddress, profile, true);
|
||||
connect(profile);
|
||||
}
|
||||
}
|
||||
|
||||
public void connect(Profile profile) {
|
||||
if (!ensurePaired()) return;
|
||||
|
||||
LocalBluetoothProfileManager profileManager =
|
||||
LocalBluetoothProfileManager.getProfileManager(mLocalManager, profile);
|
||||
int status = profileManager.getConnectionStatus(mAddress);
|
||||
if (!SettingsBtStatus.isConnectionStatusConnected(status)) {
|
||||
mIsConnectingErrorPossible = true;
|
||||
if (profileManager.connect(mAddress) != BluetoothDevice.RESULT_SUCCESS) {
|
||||
showConnectingError();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void showConnectingError() {
|
||||
if (!mIsConnectingErrorPossible) return;
|
||||
mIsConnectingErrorPossible = false;
|
||||
|
||||
mLocalManager.showError(mAddress, R.string.bluetooth_error_title,
|
||||
R.string.bluetooth_connecting_error_message);
|
||||
}
|
||||
|
||||
private boolean ensurePaired() {
|
||||
if (getPairingStatus() == SettingsBtStatus.PAIRING_STATUS_UNPAIRED) {
|
||||
pair();
|
||||
return false;
|
||||
} else {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
public void pair() {
|
||||
BluetoothDevice manager = mLocalManager.getBluetoothManager();
|
||||
|
||||
// Pairing doesn't work if scanning, so cancel
|
||||
if (manager.isDiscovering()) {
|
||||
manager.cancelDiscovery();
|
||||
}
|
||||
|
||||
if (mLocalManager.createBonding(mAddress)) {
|
||||
setPairingStatus(SettingsBtStatus.PAIRING_STATUS_PAIRING);
|
||||
}
|
||||
}
|
||||
|
||||
public void unpair() {
|
||||
BluetoothDevice manager = mLocalManager.getBluetoothManager();
|
||||
|
||||
switch (getPairingStatus()) {
|
||||
case SettingsBtStatus.PAIRING_STATUS_PAIRED:
|
||||
manager.removeBonding(mAddress);
|
||||
break;
|
||||
|
||||
case SettingsBtStatus.PAIRING_STATUS_PAIRING:
|
||||
manager.cancelBondingProcess(mAddress);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
private void fillData() {
|
||||
BluetoothDevice manager = mLocalManager.getBluetoothManager();
|
||||
|
||||
fetchName();
|
||||
mBtClass = manager.getRemoteClass(mAddress);
|
||||
|
||||
LocalBluetoothProfileManager.fill(mBtClass, mProfiles);
|
||||
|
||||
mPairingStatus = manager.hasBonding(mAddress)
|
||||
? SettingsBtStatus.PAIRING_STATUS_PAIRED
|
||||
: SettingsBtStatus.PAIRING_STATUS_UNPAIRED;
|
||||
|
||||
mVisible = false;
|
||||
|
||||
dispatchAttributesChanged();
|
||||
}
|
||||
|
||||
public String getAddress() {
|
||||
return mAddress;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return mName;
|
||||
}
|
||||
|
||||
public void refreshName() {
|
||||
fetchName();
|
||||
dispatchAttributesChanged();
|
||||
}
|
||||
|
||||
private void fetchName() {
|
||||
mName = mLocalManager.getBluetoothManager().getRemoteName(mAddress);
|
||||
|
||||
if (TextUtils.isEmpty(mName)) {
|
||||
mName = mAddress;
|
||||
}
|
||||
}
|
||||
|
||||
public void refresh() {
|
||||
dispatchAttributesChanged();
|
||||
}
|
||||
|
||||
public boolean isVisible() {
|
||||
return mVisible;
|
||||
}
|
||||
|
||||
void setVisible(boolean visible) {
|
||||
if (mVisible != visible) {
|
||||
mVisible = visible;
|
||||
dispatchAttributesChanged();
|
||||
}
|
||||
}
|
||||
|
||||
public int getPairingStatus() {
|
||||
return mPairingStatus;
|
||||
}
|
||||
|
||||
void setPairingStatus(int pairingStatus) {
|
||||
if (mPairingStatus != pairingStatus) {
|
||||
mPairingStatus = pairingStatus;
|
||||
dispatchAttributesChanged();
|
||||
}
|
||||
}
|
||||
|
||||
void setRssi(short rssi) {
|
||||
if (mRssi != rssi) {
|
||||
mRssi = rssi;
|
||||
dispatchAttributesChanged();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks whether we are connected to this device (any profile counts).
|
||||
*
|
||||
* @return Whether it is connected.
|
||||
*/
|
||||
public boolean isConnected() {
|
||||
for (Profile profile : mProfiles) {
|
||||
int status = LocalBluetoothProfileManager.getProfileManager(mLocalManager, profile)
|
||||
.getConnectionStatus(mAddress);
|
||||
if (SettingsBtStatus.isConnectionStatusConnected(status)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean isBusy() {
|
||||
for (Profile profile : mProfiles) {
|
||||
int status = LocalBluetoothProfileManager.getProfileManager(mLocalManager, profile)
|
||||
.getConnectionStatus(mAddress);
|
||||
if (SettingsBtStatus.isConnectionStatusBusy(status)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
if (getPairingStatus() == SettingsBtStatus.PAIRING_STATUS_PAIRING) {
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public int getBtClassDrawable() {
|
||||
|
||||
// First try looking at profiles
|
||||
if (mProfiles.contains(Profile.A2DP)) {
|
||||
return R.drawable.ic_bt_headphones_a2dp;
|
||||
} else if (mProfiles.contains(Profile.HEADSET)) {
|
||||
return R.drawable.ic_bt_headset_hfp;
|
||||
}
|
||||
|
||||
// Fallback on class
|
||||
switch (BluetoothClass.Device.Major.getDeviceMajor(mBtClass)) {
|
||||
case BluetoothClass.Device.Major.COMPUTER:
|
||||
return R.drawable.ic_bt_laptop;
|
||||
|
||||
case BluetoothClass.Device.Major.PHONE:
|
||||
return R.drawable.ic_bt_cellphone;
|
||||
|
||||
default:
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
public int getSummary() {
|
||||
// TODO: clean up
|
||||
int oneOffSummary = getOneOffSummary();
|
||||
if (oneOffSummary != 0) {
|
||||
return oneOffSummary;
|
||||
}
|
||||
|
||||
for (Profile profile : mProfiles) {
|
||||
LocalBluetoothProfileManager profileManager = LocalBluetoothProfileManager
|
||||
.getProfileManager(mLocalManager, profile);
|
||||
int connectionStatus = profileManager.getConnectionStatus(mAddress);
|
||||
|
||||
if (SettingsBtStatus.isConnectionStatusConnected(connectionStatus) ||
|
||||
connectionStatus == SettingsBtStatus.CONNECTION_STATUS_CONNECTING ||
|
||||
connectionStatus == SettingsBtStatus.CONNECTION_STATUS_DISCONNECTING) {
|
||||
return SettingsBtStatus.getConnectionStatusSummary(connectionStatus);
|
||||
}
|
||||
}
|
||||
|
||||
int pairingStatus = getPairingStatus();
|
||||
return SettingsBtStatus.getPairingStatusSummary(pairingStatus);
|
||||
}
|
||||
|
||||
/**
|
||||
* We have special summaries when particular profiles are connected. This
|
||||
* checks for those states and returns an applicable summary.
|
||||
*
|
||||
* @return A one-off summary that is applicable for the current state, or 0.
|
||||
*/
|
||||
private int getOneOffSummary() {
|
||||
boolean isA2dpConnected = false, isHeadsetConnected = false, isConnecting = false;
|
||||
|
||||
if (mProfiles.contains(Profile.A2DP)) {
|
||||
LocalBluetoothProfileManager profileManager = LocalBluetoothProfileManager
|
||||
.getProfileManager(mLocalManager, Profile.A2DP);
|
||||
isConnecting = profileManager.getConnectionStatus(mAddress) ==
|
||||
SettingsBtStatus.CONNECTION_STATUS_CONNECTING;
|
||||
isA2dpConnected = profileManager.isConnected(mAddress);
|
||||
}
|
||||
|
||||
if (mProfiles.contains(Profile.HEADSET)) {
|
||||
LocalBluetoothProfileManager profileManager = LocalBluetoothProfileManager
|
||||
.getProfileManager(mLocalManager, Profile.HEADSET);
|
||||
isConnecting |= profileManager.getConnectionStatus(mAddress) ==
|
||||
SettingsBtStatus.CONNECTION_STATUS_CONNECTING;
|
||||
isHeadsetConnected = profileManager.isConnected(mAddress);
|
||||
}
|
||||
|
||||
if (isConnecting) {
|
||||
// If any of these important profiles is connecting, prefer that
|
||||
return SettingsBtStatus.getConnectionStatusSummary(
|
||||
SettingsBtStatus.CONNECTION_STATUS_CONNECTING);
|
||||
} else if (isA2dpConnected && isHeadsetConnected) {
|
||||
return R.string.bluetooth_summary_connected_to_a2dp_headset;
|
||||
} else if (isA2dpConnected) {
|
||||
return R.string.bluetooth_summary_connected_to_a2dp;
|
||||
} else if (isHeadsetConnected) {
|
||||
return R.string.bluetooth_summary_connected_to_headset;
|
||||
} else {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
public List<Profile> getProfiles() {
|
||||
return new ArrayList<Profile>(mProfiles);
|
||||
}
|
||||
|
||||
public void onCreateContextMenu(ContextMenu menu) {
|
||||
// No context menu if it is busy (none of these items are applicable if busy)
|
||||
if (isBusy()) return;
|
||||
|
||||
// No context menu if there are no profiles
|
||||
if (mProfiles.size() == 0) return;
|
||||
|
||||
int pairingStatus = getPairingStatus();
|
||||
boolean isConnected = isConnected();
|
||||
|
||||
menu.setHeaderTitle(getName());
|
||||
|
||||
if (isConnected) {
|
||||
menu.add(0, CONTEXT_ITEM_DISCONNECT, 0, R.string.bluetooth_device_context_disconnect);
|
||||
} else {
|
||||
// For connection action, show either "Connect" or "Pair & connect"
|
||||
int connectString = pairingStatus == SettingsBtStatus.PAIRING_STATUS_UNPAIRED
|
||||
? R.string.bluetooth_device_context_pair_connect
|
||||
: R.string.bluetooth_device_context_connect;
|
||||
menu.add(0, CONTEXT_ITEM_CONNECT, 0, connectString);
|
||||
}
|
||||
|
||||
if (pairingStatus == SettingsBtStatus.PAIRING_STATUS_PAIRED) {
|
||||
// For unpair action, show either "Unpair" or "Disconnect & unpair"
|
||||
int unpairString = isConnected
|
||||
? R.string.bluetooth_device_context_disconnect_unpair
|
||||
: R.string.bluetooth_device_context_unpair;
|
||||
menu.add(0, CONTEXT_ITEM_UNPAIR, 0, unpairString);
|
||||
|
||||
// Show the connection options item
|
||||
menu.add(0, CONTEXT_ITEM_CONNECT_ADVANCED, 0,
|
||||
R.string.bluetooth_device_context_connect_advanced);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Called when a context menu item is clicked.
|
||||
*
|
||||
* @param item The item that was clicked.
|
||||
*/
|
||||
public void onContextItemSelected(MenuItem item) {
|
||||
switch (item.getItemId()) {
|
||||
case CONTEXT_ITEM_DISCONNECT:
|
||||
disconnect();
|
||||
break;
|
||||
|
||||
case CONTEXT_ITEM_CONNECT:
|
||||
connect();
|
||||
break;
|
||||
|
||||
case CONTEXT_ITEM_UNPAIR:
|
||||
unpair();
|
||||
break;
|
||||
|
||||
case CONTEXT_ITEM_CONNECT_ADVANCED:
|
||||
Intent intent = new Intent();
|
||||
// Need an activity context to open this in our task
|
||||
Context context = mLocalManager.getForegroundActivity();
|
||||
if (context == null) {
|
||||
// Fallback on application context, and open in a new task
|
||||
context = mLocalManager.getContext();
|
||||
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||
}
|
||||
intent.setClass(context, ConnectSpecificProfilesActivity.class);
|
||||
intent.putExtra(ConnectSpecificProfilesActivity.EXTRA_ADDRESS, mAddress);
|
||||
context.startActivity(intent);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
public void registerCallback(Callback callback) {
|
||||
synchronized (mCallbacks) {
|
||||
mCallbacks.add(callback);
|
||||
}
|
||||
}
|
||||
|
||||
public void unregisterCallback(Callback callback) {
|
||||
synchronized (mCallbacks) {
|
||||
mCallbacks.remove(callback);
|
||||
}
|
||||
}
|
||||
|
||||
private void dispatchAttributesChanged() {
|
||||
synchronized (mCallbacks) {
|
||||
for (Callback callback : mCallbacks) {
|
||||
callback.onDeviceAttributesChanged(this);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return mAddress;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object o) {
|
||||
if ((o == null) || !(o instanceof LocalBluetoothDevice)) {
|
||||
throw new ClassCastException();
|
||||
}
|
||||
|
||||
return mAddress.equals(((LocalBluetoothDevice) o).mAddress);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
return mAddress.hashCode();
|
||||
}
|
||||
|
||||
public int compareTo(LocalBluetoothDevice another) {
|
||||
int comparison;
|
||||
|
||||
// Connected above not connected
|
||||
comparison = (another.isConnected() ? 1 : 0) - (isConnected() ? 1 : 0);
|
||||
if (comparison != 0) return comparison;
|
||||
|
||||
// Paired above not paired
|
||||
comparison = (another.mPairingStatus == SettingsBtStatus.PAIRING_STATUS_PAIRED ? 1 : 0) -
|
||||
(mPairingStatus == SettingsBtStatus.PAIRING_STATUS_PAIRED ? 1 : 0);
|
||||
if (comparison != 0) return comparison;
|
||||
|
||||
// Visible above not visible
|
||||
comparison = (another.mVisible ? 1 : 0) - (mVisible ? 1 : 0);
|
||||
if (comparison != 0) return comparison;
|
||||
|
||||
// Stronger signal above weaker signal
|
||||
comparison = another.mRssi - mRssi;
|
||||
if (comparison != 0) return comparison;
|
||||
|
||||
// Fallback on name
|
||||
return getName().compareTo(another.getName());
|
||||
}
|
||||
|
||||
public interface Callback {
|
||||
void onDeviceAttributesChanged(LocalBluetoothDevice device);
|
||||
}
|
||||
}
|
@@ -0,0 +1,209 @@
|
||||
/*
|
||||
* Copyright (C) 2008 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package com.android.settings.bluetooth;
|
||||
|
||||
import android.app.AlertDialog;
|
||||
import android.bluetooth.BluetoothDevice;
|
||||
import android.util.Log;
|
||||
import android.widget.Toast;
|
||||
import android.content.Context;
|
||||
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.bluetooth.LocalBluetoothManager.Callback;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* LocalBluetoothDeviceManager manages the set of remote Bluetooth devices.
|
||||
*/
|
||||
public class LocalBluetoothDeviceManager {
|
||||
private static final String TAG = "LocalBluetoothDeviceManager";
|
||||
|
||||
final LocalBluetoothManager mLocalManager;
|
||||
final List<Callback> mCallbacks;
|
||||
|
||||
final List<LocalBluetoothDevice> mDevices = new ArrayList<LocalBluetoothDevice>();
|
||||
|
||||
public LocalBluetoothDeviceManager(LocalBluetoothManager localManager) {
|
||||
mLocalManager = localManager;
|
||||
mCallbacks = localManager.getCallbacks();
|
||||
readPairedDevices();
|
||||
}
|
||||
|
||||
private synchronized void readPairedDevices() {
|
||||
BluetoothDevice manager = mLocalManager.getBluetoothManager();
|
||||
String[] bondedAddresses = manager.listBondings();
|
||||
if (bondedAddresses == null) return;
|
||||
|
||||
for (String address : bondedAddresses) {
|
||||
LocalBluetoothDevice device = findDevice(address);
|
||||
if (device == null) {
|
||||
device = new LocalBluetoothDevice(mLocalManager.getContext(), address);
|
||||
mDevices.add(device);
|
||||
dispatchDeviceAdded(device);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public synchronized List<LocalBluetoothDevice> getDevicesCopy() {
|
||||
return new ArrayList<LocalBluetoothDevice>(mDevices);
|
||||
}
|
||||
|
||||
void onBluetoothStateChanged(boolean enabled) {
|
||||
if (enabled) {
|
||||
readPairedDevices();
|
||||
}
|
||||
}
|
||||
|
||||
public synchronized void onDeviceAppeared(String address, short rssi) {
|
||||
boolean deviceAdded = false;
|
||||
|
||||
LocalBluetoothDevice device = findDevice(address);
|
||||
if (device == null) {
|
||||
device = new LocalBluetoothDevice(mLocalManager.getContext(), address);
|
||||
mDevices.add(device);
|
||||
deviceAdded = true;
|
||||
}
|
||||
|
||||
device.setRssi(rssi);
|
||||
device.setVisible(true);
|
||||
|
||||
if (deviceAdded) {
|
||||
dispatchDeviceAdded(device);
|
||||
}
|
||||
}
|
||||
|
||||
public synchronized void onDeviceDisappeared(String address) {
|
||||
LocalBluetoothDevice device = findDevice(address);
|
||||
if (device == null) return;
|
||||
|
||||
device.setVisible(false);
|
||||
checkForDeviceRemoval(device);
|
||||
}
|
||||
|
||||
private void checkForDeviceRemoval(LocalBluetoothDevice device) {
|
||||
if (device.getPairingStatus() == SettingsBtStatus.PAIRING_STATUS_UNPAIRED &&
|
||||
!device.isVisible()) {
|
||||
// If device isn't paired, remove it altogether
|
||||
mDevices.remove(device);
|
||||
dispatchDeviceDeleted(device);
|
||||
}
|
||||
}
|
||||
|
||||
public synchronized void onDeviceNameUpdated(String address) {
|
||||
LocalBluetoothDevice device = findDevice(address);
|
||||
if (device != null) {
|
||||
device.refreshName();
|
||||
}
|
||||
}
|
||||
|
||||
public synchronized LocalBluetoothDevice findDevice(String address) {
|
||||
|
||||
for (int i = mDevices.size() - 1; i >= 0; i--) {
|
||||
LocalBluetoothDevice device = mDevices.get(i);
|
||||
|
||||
if (device.getAddress().equals(address)) {
|
||||
return device;
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Attempts to get the name of a remote device, otherwise returns the address.
|
||||
*
|
||||
* @param address The address.
|
||||
* @return The name, or if unavailable, the address.
|
||||
*/
|
||||
public String getName(String address) {
|
||||
LocalBluetoothDevice device = findDevice(address);
|
||||
return device != null ? device.getName() : address;
|
||||
}
|
||||
|
||||
private void dispatchDeviceAdded(LocalBluetoothDevice device) {
|
||||
synchronized (mCallbacks) {
|
||||
for (Callback callback : mCallbacks) {
|
||||
callback.onDeviceAdded(device);
|
||||
}
|
||||
}
|
||||
|
||||
// TODO: divider between prev paired/connected and scanned
|
||||
}
|
||||
|
||||
private void dispatchDeviceDeleted(LocalBluetoothDevice device) {
|
||||
synchronized (mCallbacks) {
|
||||
for (Callback callback : mCallbacks) {
|
||||
callback.onDeviceDeleted(device);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public synchronized void onBondingStateChanged(String address, boolean created) {
|
||||
LocalBluetoothDevice device = findDevice(address);
|
||||
if (device == null) {
|
||||
Log.e(TAG, "Got bonding state changed for " + address +
|
||||
", but we have no record of that device.");
|
||||
return;
|
||||
}
|
||||
|
||||
device.setPairingStatus(created ? SettingsBtStatus.PAIRING_STATUS_PAIRED
|
||||
: SettingsBtStatus.PAIRING_STATUS_UNPAIRED);
|
||||
checkForDeviceRemoval(device);
|
||||
|
||||
if (created) {
|
||||
// Auto-connect after pairing
|
||||
device.connect();
|
||||
}
|
||||
}
|
||||
|
||||
public synchronized void onBondingError(String address) {
|
||||
mLocalManager.showError(address, R.string.bluetooth_error_title,
|
||||
R.string.bluetooth_pairing_error_message);
|
||||
}
|
||||
|
||||
public synchronized void onProfileStateChanged(String address) {
|
||||
LocalBluetoothDevice device = findDevice(address);
|
||||
if (device == null) return;
|
||||
|
||||
device.refresh();
|
||||
}
|
||||
|
||||
public synchronized void onConnectingError(String address) {
|
||||
LocalBluetoothDevice device = findDevice(address);
|
||||
if (device == null) return;
|
||||
|
||||
/*
|
||||
* Go through the device's delegate so we don't spam the user with
|
||||
* errors connecting to different profiles, and instead make sure the
|
||||
* user sees a single error for his single 'connect' action.
|
||||
*/
|
||||
device.showConnectingError();
|
||||
}
|
||||
|
||||
public synchronized void onScanningStateChanged(boolean started) {
|
||||
if (!started) return;
|
||||
|
||||
// If starting a new scan, clear old visibility
|
||||
for (int i = mDevices.size() - 1; i >= 0; i--) {
|
||||
LocalBluetoothDevice device = mDevices.get(i);
|
||||
device.setVisible(false);
|
||||
checkForDeviceRemoval(device);
|
||||
}
|
||||
}
|
||||
}
|
260
src/com/android/settings/bluetooth/LocalBluetoothManager.java
Normal file
@@ -0,0 +1,260 @@
|
||||
/*
|
||||
* Copyright (C) 2008 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package com.android.settings.bluetooth;
|
||||
|
||||
import com.android.settings.R;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.app.AlertDialog;
|
||||
import android.bluetooth.BluetoothDevice;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.SharedPreferences;
|
||||
import android.util.Log;
|
||||
import android.widget.Toast;
|
||||
|
||||
// TODO: have some notion of shutting down. Maybe a minute after they leave BT settings?
|
||||
/**
|
||||
* LocalBluetoothManager provides a simplified interface on top of a subset of
|
||||
* the Bluetooth API.
|
||||
*/
|
||||
public class LocalBluetoothManager {
|
||||
private static final String TAG = "LocalBluetoothManager";
|
||||
static final boolean V = true;
|
||||
|
||||
public static final String EXTENDED_BLUETOOTH_STATE_CHANGED_ACTION =
|
||||
"com.android.settings.bluetooth.intent.action.EXTENDED_BLUETOOTH_STATE_CHANGED";
|
||||
private static final String SHARED_PREFERENCES_NAME = "bluetooth_settings";
|
||||
|
||||
private static LocalBluetoothManager INSTANCE;
|
||||
/** Used when obtaining a reference to the singleton instance. */
|
||||
private static Object INSTANCE_LOCK = new Object();
|
||||
private boolean mInitialized;
|
||||
|
||||
private Context mContext;
|
||||
/** If a BT-related activity is in the foreground, this will be it. */
|
||||
private Activity mForegroundActivity;
|
||||
|
||||
private BluetoothDevice mManager;
|
||||
|
||||
private LocalBluetoothDeviceManager mLocalDeviceManager;
|
||||
private BluetoothEventRedirector mEventRedirector;
|
||||
|
||||
public static enum ExtendedBluetoothState { ENABLED, ENABLING, DISABLED, DISABLING, UNKNOWN }
|
||||
private ExtendedBluetoothState mState = ExtendedBluetoothState.UNKNOWN;
|
||||
|
||||
private List<Callback> mCallbacks = new ArrayList<Callback>();
|
||||
|
||||
private static final int SCAN_EXPIRATION_MS = 5 * 60 * 1000; // 5 mins
|
||||
private long mLastScan;
|
||||
|
||||
public static LocalBluetoothManager getInstance(Context context) {
|
||||
synchronized (INSTANCE_LOCK) {
|
||||
if (INSTANCE == null) {
|
||||
INSTANCE = new LocalBluetoothManager();
|
||||
}
|
||||
|
||||
if (!INSTANCE.init(context)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return INSTANCE;
|
||||
}
|
||||
}
|
||||
|
||||
private boolean init(Context context) {
|
||||
if (mInitialized) return true;
|
||||
mInitialized = true;
|
||||
|
||||
// This will be around as long as this process is
|
||||
mContext = context.getApplicationContext();
|
||||
|
||||
mManager = (BluetoothDevice) context.getSystemService(Context.BLUETOOTH_SERVICE);
|
||||
if (mManager == null) {
|
||||
return false;
|
||||
}
|
||||
|
||||
mLocalDeviceManager = new LocalBluetoothDeviceManager(this);
|
||||
|
||||
mEventRedirector = new BluetoothEventRedirector(this);
|
||||
mEventRedirector.start();
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public BluetoothDevice getBluetoothManager() {
|
||||
return mManager;
|
||||
}
|
||||
|
||||
public Context getContext() {
|
||||
return mContext;
|
||||
}
|
||||
|
||||
public Activity getForegroundActivity() {
|
||||
return mForegroundActivity;
|
||||
}
|
||||
|
||||
public void setForegroundActivity(Activity activity) {
|
||||
mForegroundActivity = activity;
|
||||
}
|
||||
|
||||
public SharedPreferences getSharedPreferences() {
|
||||
return mContext.getSharedPreferences(SHARED_PREFERENCES_NAME, Context.MODE_PRIVATE);
|
||||
}
|
||||
|
||||
public LocalBluetoothDeviceManager getLocalDeviceManager() {
|
||||
return mLocalDeviceManager;
|
||||
}
|
||||
|
||||
List<Callback> getCallbacks() {
|
||||
return mCallbacks;
|
||||
}
|
||||
|
||||
public void registerCallback(Callback callback) {
|
||||
synchronized (mCallbacks) {
|
||||
mCallbacks.add(callback);
|
||||
}
|
||||
}
|
||||
|
||||
public void unregisterCallback(Callback callback) {
|
||||
synchronized (mCallbacks) {
|
||||
mCallbacks.remove(callback);
|
||||
}
|
||||
}
|
||||
|
||||
public void startScanning(boolean force) {
|
||||
if (mManager.isDiscovering()) {
|
||||
/*
|
||||
* Already discovering, but give the callback that information.
|
||||
* Note: we only call the callbacks, not the same path as if the
|
||||
* scanning state had really changed (in that case the device
|
||||
* manager would clear its list of unpaired scanned devices).
|
||||
*/
|
||||
dispatchScanningStateChanged(true);
|
||||
} else {
|
||||
|
||||
// Don't scan more than frequently than SCAN_EXPIRATION_MS, unless forced
|
||||
if (!force && mLastScan + SCAN_EXPIRATION_MS > System.currentTimeMillis()) return;
|
||||
|
||||
if (mManager.startDiscovery(true)) {
|
||||
mLastScan = System.currentTimeMillis();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public ExtendedBluetoothState getBluetoothState() {
|
||||
|
||||
if (mState == ExtendedBluetoothState.UNKNOWN) {
|
||||
syncBluetoothState();
|
||||
}
|
||||
|
||||
return mState;
|
||||
}
|
||||
|
||||
void setBluetoothStateInt(ExtendedBluetoothState state) {
|
||||
mState = state;
|
||||
|
||||
/*
|
||||
* TODO: change to callback method. originally it was broadcast to
|
||||
* parallel the framework's method, but it just complicates things here.
|
||||
*/
|
||||
// If this were a real API, I'd add as an extra
|
||||
mContext.sendBroadcast(new Intent(EXTENDED_BLUETOOTH_STATE_CHANGED_ACTION));
|
||||
|
||||
if (state == ExtendedBluetoothState.ENABLED || state == ExtendedBluetoothState.DISABLED) {
|
||||
mLocalDeviceManager.onBluetoothStateChanged(state == ExtendedBluetoothState.ENABLED);
|
||||
}
|
||||
}
|
||||
|
||||
private void syncBluetoothState() {
|
||||
setBluetoothStateInt(mManager.isEnabled()
|
||||
? ExtendedBluetoothState.ENABLED
|
||||
: ExtendedBluetoothState.DISABLED);
|
||||
}
|
||||
|
||||
public void setBluetoothEnabled(boolean enabled) {
|
||||
boolean wasSetStateSuccessful = enabled
|
||||
? mManager.enable()
|
||||
: mManager.disable();
|
||||
|
||||
if (wasSetStateSuccessful) {
|
||||
setBluetoothStateInt(enabled
|
||||
? ExtendedBluetoothState.ENABLING
|
||||
: ExtendedBluetoothState.DISABLING);
|
||||
} else {
|
||||
if (V) {
|
||||
Log.v(TAG,
|
||||
"setBluetoothEnabled call, manager didn't return success for enabled: "
|
||||
+ enabled);
|
||||
}
|
||||
|
||||
syncBluetoothState();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param started True if scanning started, false if scanning finished.
|
||||
*/
|
||||
void onScanningStateChanged(boolean started) {
|
||||
// TODO: have it be a callback (once we switch bluetooth state changed to callback)
|
||||
mLocalDeviceManager.onScanningStateChanged(started);
|
||||
dispatchScanningStateChanged(started);
|
||||
}
|
||||
|
||||
private void dispatchScanningStateChanged(boolean started) {
|
||||
synchronized (mCallbacks) {
|
||||
for (Callback callback : mCallbacks) {
|
||||
callback.onScanningStateChanged(started);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public boolean createBonding(String address) {
|
||||
return mManager.createBonding(address, mEventRedirector.getBluetoothDeviceCallback());
|
||||
}
|
||||
|
||||
public void showError(String address, int titleResId, int messageResId) {
|
||||
LocalBluetoothDevice device = mLocalDeviceManager.findDevice(address);
|
||||
if (device == null) return;
|
||||
|
||||
String name = device.getName();
|
||||
String message = mContext.getString(messageResId, name);
|
||||
|
||||
if (mForegroundActivity != null) {
|
||||
// Need an activity context to show a dialog
|
||||
AlertDialog ad = new AlertDialog.Builder(mForegroundActivity)
|
||||
.setIcon(android.R.drawable.ic_dialog_alert)
|
||||
.setTitle(titleResId)
|
||||
.setMessage(message)
|
||||
.setPositiveButton(android.R.string.ok, null)
|
||||
.show();
|
||||
} else {
|
||||
// Fallback on a toast
|
||||
Toast.makeText(mContext, message, Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
}
|
||||
|
||||
public interface Callback {
|
||||
void onScanningStateChanged(boolean started);
|
||||
void onDeviceAdded(LocalBluetoothDevice device);
|
||||
void onDeviceDeleted(LocalBluetoothDevice device);
|
||||
}
|
||||
|
||||
}
|
@@ -0,0 +1,312 @@
|
||||
/*
|
||||
* Copyright (C) 2008 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package com.android.settings.bluetooth;
|
||||
|
||||
import com.android.settings.R;
|
||||
|
||||
import android.bluetooth.BluetoothA2dp;
|
||||
import android.bluetooth.BluetoothError;
|
||||
import android.bluetooth.BluetoothHeadset;
|
||||
import android.bluetooth.BluetoothClass;
|
||||
import android.content.Context;
|
||||
import android.content.SharedPreferences;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* LocalBluetoothProfileManager is an abstract class defining the basic
|
||||
* functionality related to a profile.
|
||||
*/
|
||||
public abstract class LocalBluetoothProfileManager {
|
||||
|
||||
// TODO: close profiles when we're shutting down
|
||||
private static Map<Profile, LocalBluetoothProfileManager> sProfileMap =
|
||||
new HashMap<Profile, LocalBluetoothProfileManager>();
|
||||
|
||||
protected LocalBluetoothManager mLocalManager;
|
||||
|
||||
public static LocalBluetoothProfileManager getProfileManager(LocalBluetoothManager localManager,
|
||||
Profile profile) {
|
||||
|
||||
LocalBluetoothProfileManager profileManager;
|
||||
|
||||
synchronized (sProfileMap) {
|
||||
profileManager = sProfileMap.get(profile);
|
||||
|
||||
if (profileManager == null) {
|
||||
switch (profile) {
|
||||
case A2DP:
|
||||
profileManager = new A2dpProfileManager(localManager);
|
||||
break;
|
||||
|
||||
case HEADSET:
|
||||
profileManager = new HeadsetProfileManager(localManager);
|
||||
break;
|
||||
}
|
||||
|
||||
sProfileMap.put(profile, profileManager);
|
||||
}
|
||||
}
|
||||
|
||||
return profileManager;
|
||||
}
|
||||
|
||||
// TODO: remove once the framework has this API
|
||||
public static boolean isPreferredProfile(Context context, String address, Profile profile) {
|
||||
return getPreferredProfileSharedPreferences(context).getBoolean(
|
||||
getPreferredProfileKey(address, profile), true);
|
||||
}
|
||||
|
||||
public static void setPreferredProfile(Context context, String address, Profile profile,
|
||||
boolean preferred) {
|
||||
getPreferredProfileSharedPreferences(context).edit().putBoolean(
|
||||
getPreferredProfileKey(address, profile), preferred).commit();
|
||||
}
|
||||
|
||||
private static SharedPreferences getPreferredProfileSharedPreferences(Context context) {
|
||||
return context.getSharedPreferences("bluetooth_preferred_profiles", Context.MODE_PRIVATE);
|
||||
}
|
||||
|
||||
private static String getPreferredProfileKey(String address, Profile profile) {
|
||||
return address + "_" + profile.toString();
|
||||
}
|
||||
|
||||
/**
|
||||
* Temporary method to fill profiles based on a device's class.
|
||||
*
|
||||
* @param btClass The class
|
||||
* @param profiles The list of profiles to fill
|
||||
*/
|
||||
public static void fill(int btClass, List<Profile> profiles) {
|
||||
profiles.clear();
|
||||
|
||||
if (A2dpProfileManager.doesClassMatch(btClass)) {
|
||||
profiles.add(Profile.A2DP);
|
||||
}
|
||||
|
||||
if (HeadsetProfileManager.doesClassMatch(btClass)) {
|
||||
profiles.add(Profile.HEADSET);
|
||||
}
|
||||
}
|
||||
|
||||
protected LocalBluetoothProfileManager(LocalBluetoothManager localManager) {
|
||||
mLocalManager = localManager;
|
||||
}
|
||||
|
||||
public abstract int connect(String address);
|
||||
|
||||
public abstract int disconnect(String address);
|
||||
|
||||
public abstract int getConnectionStatus(String address);
|
||||
|
||||
public abstract int getSummary(String address);
|
||||
|
||||
public boolean isConnected(String address) {
|
||||
return SettingsBtStatus.isConnectionStatusConnected(getConnectionStatus(address));
|
||||
}
|
||||
|
||||
// TODO: int instead of enum
|
||||
public enum Profile {
|
||||
HEADSET(R.string.bluetooth_profile_headset),
|
||||
A2DP(R.string.bluetooth_profile_a2dp);
|
||||
|
||||
public final int localizedString;
|
||||
|
||||
private Profile(int localizedString) {
|
||||
this.localizedString = localizedString;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* A2dpProfileManager is an abstraction for the {@link BluetoothA2dp} service.
|
||||
*/
|
||||
private static class A2dpProfileManager extends LocalBluetoothProfileManager {
|
||||
private BluetoothA2dp mService;
|
||||
|
||||
public A2dpProfileManager(LocalBluetoothManager localManager) {
|
||||
super(localManager);
|
||||
|
||||
mService = new BluetoothA2dp(localManager.getContext());
|
||||
// TODO: block until connection?
|
||||
}
|
||||
|
||||
@Override
|
||||
public int connect(String address) {
|
||||
return mService.connectSink(address);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int disconnect(String address) {
|
||||
return mService.disconnectSink(address);
|
||||
}
|
||||
|
||||
static boolean doesClassMatch(int btClass) {
|
||||
if (BluetoothClass.Service.hasService(btClass, BluetoothClass.Service.RENDER)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
// By the specification A2DP sinks must indicate the RENDER service
|
||||
// class, but some do not (Chordette). So match on a few more to be
|
||||
// safe
|
||||
switch (BluetoothClass.Device.getDevice(btClass)) {
|
||||
case BluetoothClass.Device.AUDIO_VIDEO_HIFI_AUDIO:
|
||||
case BluetoothClass.Device.AUDIO_VIDEO_HEADPHONES:
|
||||
case BluetoothClass.Device.AUDIO_VIDEO_LOUDSPEAKER:
|
||||
case BluetoothClass.Device.AUDIO_VIDEO_CAR_AUDIO:
|
||||
return true;
|
||||
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getConnectionStatus(String address) {
|
||||
return convertState(mService.getSinkState(address));
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getSummary(String address) {
|
||||
int connectionStatus = getConnectionStatus(address);
|
||||
|
||||
if (SettingsBtStatus.isConnectionStatusConnected(connectionStatus)) {
|
||||
return R.string.bluetooth_a2dp_profile_summary_connected;
|
||||
} else {
|
||||
return SettingsBtStatus.getConnectionStatusSummary(connectionStatus);
|
||||
}
|
||||
}
|
||||
|
||||
private static int convertState(int a2dpState) {
|
||||
switch (a2dpState) {
|
||||
case BluetoothA2dp.STATE_CONNECTED:
|
||||
return SettingsBtStatus.CONNECTION_STATUS_CONNECTED;
|
||||
case BluetoothA2dp.STATE_CONNECTING:
|
||||
return SettingsBtStatus.CONNECTION_STATUS_CONNECTING;
|
||||
case BluetoothA2dp.STATE_DISCONNECTED:
|
||||
return SettingsBtStatus.CONNECTION_STATUS_DISCONNECTED;
|
||||
case BluetoothA2dp.STATE_DISCONNECTING:
|
||||
return SettingsBtStatus.CONNECTION_STATUS_DISCONNECTING;
|
||||
case BluetoothA2dp.STATE_PLAYING:
|
||||
return SettingsBtStatus.CONNECTION_STATUS_ACTIVE;
|
||||
default:
|
||||
return SettingsBtStatus.CONNECTION_STATUS_UNKNOWN;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* HeadsetProfileManager is an abstraction for the {@link BluetoothHeadset} service.
|
||||
*/
|
||||
private static class HeadsetProfileManager extends LocalBluetoothProfileManager {
|
||||
private BluetoothHeadset mService;
|
||||
|
||||
public HeadsetProfileManager(LocalBluetoothManager localManager) {
|
||||
super(localManager);
|
||||
|
||||
// final boolean[] isServiceConnected = new boolean[1];
|
||||
// BluetoothHeadset.ServiceListener l = new BluetoothHeadset.ServiceListener() {
|
||||
// public void onServiceConnected() {
|
||||
// synchronized (this) {
|
||||
// isServiceConnected[0] = true;
|
||||
// notifyAll();
|
||||
// }
|
||||
// }
|
||||
// public void onServiceDisconnected() {
|
||||
// mService = null;
|
||||
// }
|
||||
// };
|
||||
|
||||
// TODO: block, but can't on UI thread
|
||||
mService = new BluetoothHeadset(localManager.getContext(), null);
|
||||
|
||||
// synchronized (l) {
|
||||
// while (!isServiceConnected[0]) {
|
||||
// try {
|
||||
// l.wait(100);
|
||||
// } catch (InterruptedException e) {
|
||||
// throw new IllegalStateException(e);
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
}
|
||||
|
||||
@Override
|
||||
public int connect(String address) {
|
||||
// Since connectHeadset fails if already connected to a headset, we
|
||||
// disconnect from any headset first
|
||||
mService.disconnectHeadset();
|
||||
return mService.connectHeadset(address, null)
|
||||
? BluetoothError.SUCCESS : BluetoothError.ERROR;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int disconnect(String address) {
|
||||
if (mService.getHeadsetAddress().equals(address)) {
|
||||
return mService.disconnectHeadset() ? BluetoothError.SUCCESS : BluetoothError.ERROR;
|
||||
} else {
|
||||
return BluetoothError.SUCCESS;
|
||||
}
|
||||
}
|
||||
|
||||
static boolean doesClassMatch(int btClass) {
|
||||
switch (BluetoothClass.Device.getDevice(btClass)) {
|
||||
case BluetoothClass.Device.AUDIO_VIDEO_HANDSFREE:
|
||||
case BluetoothClass.Device.AUDIO_VIDEO_WEARABLE_HEADSET:
|
||||
case BluetoothClass.Device.AUDIO_VIDEO_CAR_AUDIO:
|
||||
return true;
|
||||
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getConnectionStatus(String address) {
|
||||
String headsetAddress = mService.getHeadsetAddress();
|
||||
return headsetAddress != null && headsetAddress.equals(address)
|
||||
? convertState(mService.getState())
|
||||
: SettingsBtStatus.CONNECTION_STATUS_DISCONNECTED;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getSummary(String address) {
|
||||
int connectionStatus = getConnectionStatus(address);
|
||||
|
||||
if (SettingsBtStatus.isConnectionStatusConnected(connectionStatus)) {
|
||||
return R.string.bluetooth_headset_profile_summary_connected;
|
||||
} else {
|
||||
return SettingsBtStatus.getConnectionStatusSummary(connectionStatus);
|
||||
}
|
||||
}
|
||||
|
||||
private static int convertState(int headsetState) {
|
||||
switch (headsetState) {
|
||||
case BluetoothHeadset.STATE_CONNECTED:
|
||||
return SettingsBtStatus.CONNECTION_STATUS_CONNECTED;
|
||||
case BluetoothHeadset.STATE_CONNECTING:
|
||||
return SettingsBtStatus.CONNECTION_STATUS_CONNECTING;
|
||||
case BluetoothHeadset.STATE_DISCONNECTED:
|
||||
return SettingsBtStatus.CONNECTION_STATUS_DISCONNECTED;
|
||||
default:
|
||||
return SettingsBtStatus.CONNECTION_STATUS_UNKNOWN;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
85
src/com/android/settings/bluetooth/SettingsBtStatus.java
Normal file
@@ -0,0 +1,85 @@
|
||||
/*
|
||||
* Copyright (C) 2008 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package com.android.settings.bluetooth;
|
||||
|
||||
import com.android.settings.R;
|
||||
|
||||
/**
|
||||
* SettingsBtStatus is a helper class that contains constants for various status
|
||||
* codes.
|
||||
*/
|
||||
public class SettingsBtStatus {
|
||||
private static final String TAG = "SettingsBtStatus";
|
||||
|
||||
// Connection status
|
||||
|
||||
public static final int CONNECTION_STATUS_UNKNOWN = 0;
|
||||
public static final int CONNECTION_STATUS_ACTIVE = 1;
|
||||
/** Use {@link #isConnected} to check for the connected state */
|
||||
public static final int CONNECTION_STATUS_CONNECTED = 2;
|
||||
public static final int CONNECTION_STATUS_CONNECTING = 3;
|
||||
public static final int CONNECTION_STATUS_DISCONNECTED = 4;
|
||||
public static final int CONNECTION_STATUS_DISCONNECTING = 5;
|
||||
|
||||
public static final int getConnectionStatusSummary(int connectionStatus) {
|
||||
switch (connectionStatus) {
|
||||
case CONNECTION_STATUS_ACTIVE:
|
||||
return R.string.bluetooth_connected;
|
||||
case CONNECTION_STATUS_CONNECTED:
|
||||
return R.string.bluetooth_connected;
|
||||
case CONNECTION_STATUS_CONNECTING:
|
||||
return R.string.bluetooth_connecting;
|
||||
case CONNECTION_STATUS_DISCONNECTED:
|
||||
return R.string.bluetooth_disconnected;
|
||||
case CONNECTION_STATUS_DISCONNECTING:
|
||||
return R.string.bluetooth_disconnecting;
|
||||
case CONNECTION_STATUS_UNKNOWN:
|
||||
return R.string.bluetooth_unknown;
|
||||
default:
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
public static final boolean isConnectionStatusConnected(int connectionStatus) {
|
||||
return connectionStatus == CONNECTION_STATUS_ACTIVE
|
||||
|| connectionStatus == CONNECTION_STATUS_CONNECTED;
|
||||
}
|
||||
|
||||
public static final boolean isConnectionStatusBusy(int connectionStatus) {
|
||||
return connectionStatus == CONNECTION_STATUS_CONNECTING
|
||||
|| connectionStatus == CONNECTION_STATUS_DISCONNECTING;
|
||||
}
|
||||
|
||||
// Pairing status
|
||||
|
||||
public static final int PAIRING_STATUS_UNPAIRED = 0;
|
||||
public static final int PAIRING_STATUS_PAIRED = 1;
|
||||
public static final int PAIRING_STATUS_PAIRING = 2;
|
||||
|
||||
public static final int getPairingStatusSummary(int pairingStatus) {
|
||||
switch (pairingStatus) {
|
||||
case PAIRING_STATUS_PAIRED:
|
||||
return R.string.bluetooth_paired;
|
||||
case PAIRING_STATUS_PAIRING:
|
||||
return R.string.bluetooth_pairing;
|
||||
case PAIRING_STATUS_UNPAIRED:
|
||||
return R.string.bluetooth_not_connected;
|
||||
default:
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
}
|
@@ -22,6 +22,7 @@ import android.content.Intent;
|
||||
import android.content.IntentFilter;
|
||||
import android.content.res.Resources;
|
||||
import android.os.Bundle;
|
||||
import android.os.IBinder;
|
||||
import android.os.RemoteException;
|
||||
import android.os.Environment;
|
||||
import android.os.IMountService;
|
||||
@@ -30,6 +31,7 @@ import android.os.StatFs;
|
||||
import android.preference.Preference;
|
||||
import android.preference.PreferenceActivity;
|
||||
import android.preference.PreferenceScreen;
|
||||
import android.util.Log;
|
||||
|
||||
import com.android.settings.R;
|
||||
|
||||
@@ -37,6 +39,8 @@ import java.io.File;
|
||||
import java.text.DecimalFormat;
|
||||
|
||||
public class Memory extends PreferenceActivity {
|
||||
|
||||
private static final String TAG = "Memory";
|
||||
|
||||
private static final String MEMORY_SD_SIZE = "memory_sd_size";
|
||||
|
||||
@@ -50,15 +54,14 @@ public class Memory extends PreferenceActivity {
|
||||
private Preference mSdAvail;
|
||||
private Preference mSdUnmount;
|
||||
|
||||
private IMountService mMountService;
|
||||
// Access using getMountService()
|
||||
private IMountService mMountService = null;
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle icicle) {
|
||||
super.onCreate(icicle);
|
||||
|
||||
addPreferencesFromResource(R.xml.device_info_memory);
|
||||
|
||||
mMountService = IMountService.Stub.asInterface(ServiceManager.getService("mount"));
|
||||
|
||||
mRes = getResources();
|
||||
mSdSize = findPreference(MEMORY_SD_SIZE);
|
||||
@@ -89,6 +92,18 @@ public class Memory extends PreferenceActivity {
|
||||
unregisterReceiver(mReceiver);
|
||||
}
|
||||
|
||||
private synchronized IMountService getMountService() {
|
||||
if (mMountService == null) {
|
||||
IBinder service = ServiceManager.getService("mount");
|
||||
if (service != null) {
|
||||
mMountService = IMountService.Stub.asInterface(service);
|
||||
} else {
|
||||
Log.e(TAG, "Can't get mount service");
|
||||
}
|
||||
}
|
||||
return mMountService;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference) {
|
||||
if (preference == mSdUnmount) {
|
||||
@@ -107,8 +122,13 @@ public class Memory extends PreferenceActivity {
|
||||
};
|
||||
|
||||
private void unmount() {
|
||||
IMountService mountService = getMountService();
|
||||
try {
|
||||
mMountService.unmountMedia(Environment.getExternalStorageDirectory().toString());
|
||||
if (mountService != null) {
|
||||
mountService.unmountMedia(Environment.getExternalStorageDirectory().toString());
|
||||
} else {
|
||||
Log.e(TAG, "Mount service is null, can't unmount");
|
||||
}
|
||||
} catch (RemoteException ex) {
|
||||
// Failed for some reason, try to update UI to actual state
|
||||
updateMemoryStatus();
|
||||
|
@@ -240,9 +240,11 @@ public class Status extends PreferenceActivity {
|
||||
}
|
||||
|
||||
private void setSummaryText(String preference, String text) {
|
||||
if (text != null) {
|
||||
findPreference(preference).setSummary(text);
|
||||
if (TextUtils.isEmpty(text)) {
|
||||
text = sUnknown;
|
||||
}
|
||||
|
||||
findPreference(preference).setSummary(text);
|
||||
}
|
||||
|
||||
private void updateNetworkType() {
|
||||
|
@@ -263,7 +263,7 @@ public class QuickLaunchSettings extends PreferenceActivity implements
|
||||
KeyCharacterMap keyMap = KeyCharacterMap.load(KeyCharacterMap.BUILT_IN_KEYBOARD);
|
||||
|
||||
// Go through all the key codes and create a preference for the appropriate keys
|
||||
for (int keyCode = KeyEvent.MAX_KEYCODE - 1; keyCode >= 0; keyCode--) {
|
||||
for (int keyCode = KeyEvent.getMaxKeyCode() - 1; keyCode >= 0; keyCode--) {
|
||||
// Get the label for the primary char on the key that produces this key code
|
||||
char shortcut = (char) Character.toLowerCase(keyMap.getDisplayLabel(keyCode));
|
||||
if (shortcut == 0 || shortcutSeen.get(shortcut, false)) continue;
|
||||
|
@@ -25,6 +25,7 @@ import android.net.wifi.WifiInfo;
|
||||
import android.net.wifi.WifiManager;
|
||||
import android.os.Bundle;
|
||||
import android.text.TextUtils;
|
||||
import android.text.format.Formatter;
|
||||
import android.text.method.PasswordTransformationMethod;
|
||||
import android.text.method.TransformationMethod;
|
||||
import android.util.Log;
|
||||
@@ -303,7 +304,7 @@ public class AccessPointDialog extends AlertDialog implements DialogInterface.On
|
||||
}
|
||||
|
||||
if (mState.primary && mState.ipAddress != 0) {
|
||||
addInfoRow(R.string.ip_address, ipAddressToString(mState.ipAddress));
|
||||
addInfoRow(R.string.ip_address, Formatter.formatIpAddress(mState.ipAddress));
|
||||
}
|
||||
|
||||
} else if (mMode == MODE_CONFIGURE) {
|
||||
@@ -579,14 +580,6 @@ public class AccessPointDialog extends AlertDialog implements DialogInterface.On
|
||||
return 0;
|
||||
}
|
||||
|
||||
private static String ipAddressToString(int addr) {
|
||||
StringBuffer buf = new StringBuffer();
|
||||
buf.append(addr & 0xff).append('.').
|
||||
append((addr >>>= 8) & 0xff).append('.').
|
||||
append((addr >>>= 8) & 0xff).append('.').
|
||||
append((addr >>>= 8) & 0xff);
|
||||
return buf.toString();
|
||||
}
|
||||
|
||||
public void onClick(View v) {
|
||||
if (v == mShowPasswordCheckBox) {
|
||||
|
@@ -538,7 +538,13 @@ public final class AccessPointState implements Comparable<AccessPointState>, Par
|
||||
|
||||
// If password is empty, it should be left untouched
|
||||
if (!TextUtils.isEmpty(mPassword)) {
|
||||
config.preSharedKey = convertToQuotedString(mPassword);
|
||||
if (mPassword.length() == 64 && isHex(mPassword)) {
|
||||
// Goes unquoted as hex
|
||||
config.preSharedKey = mPassword;
|
||||
} else {
|
||||
// Goes quoted as ASCII
|
||||
config.preSharedKey = convertToQuotedString(mPassword);
|
||||
}
|
||||
}
|
||||
|
||||
} else if (security.equals(OPEN)) {
|
||||
@@ -554,8 +560,12 @@ public final class AccessPointState implements Comparable<AccessPointState>, Par
|
||||
return false;
|
||||
}
|
||||
|
||||
for (int i = len - 1; i >= 0; i--) {
|
||||
final char c = wepKey.charAt(i);
|
||||
return isHex(wepKey);
|
||||
}
|
||||
|
||||
private static boolean isHex(String key) {
|
||||
for (int i = key.length() - 1; i >= 0; i--) {
|
||||
final char c = key.charAt(i);
|
||||
if (!(c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f')) {
|
||||
return false;
|
||||
}
|
||||
|
@@ -19,12 +19,16 @@ package com.android.settings.wifi;
|
||||
import com.android.settings.R;
|
||||
|
||||
import android.content.ContentResolver;
|
||||
import android.net.wifi.WifiInfo;
|
||||
import android.net.wifi.WifiManager;
|
||||
import android.os.Bundle;
|
||||
import android.preference.CheckBoxPreference;
|
||||
import android.preference.EditTextPreference;
|
||||
import android.preference.ListPreference;
|
||||
import android.preference.Preference;
|
||||
import android.preference.PreferenceActivity;
|
||||
import android.provider.Settings.System;
|
||||
import android.text.TextUtils;
|
||||
import android.view.KeyEvent;
|
||||
import android.view.Menu;
|
||||
import android.view.MenuItem;
|
||||
@@ -32,8 +36,10 @@ import android.widget.Toast;
|
||||
|
||||
public class IpSettings extends PreferenceActivity implements Preference.OnPreferenceChangeListener {
|
||||
|
||||
private static final String KEY_MAC_ADDRESS = "mac_address";
|
||||
private static final String KEY_USE_STATIC_IP = "use_static_ip";
|
||||
|
||||
private static final String KEY_NUM_CHANNELS = "num_channels";
|
||||
|
||||
private String[] mSettingNames = {
|
||||
System.WIFI_STATIC_IP, System.WIFI_STATIC_GATEWAY, System.WIFI_STATIC_NETMASK,
|
||||
System.WIFI_STATIC_DNS1, System.WIFI_STATIC_DNS2
|
||||
@@ -61,12 +67,46 @@ public class IpSettings extends PreferenceActivity implements Preference.OnPrefe
|
||||
preference.setOnPreferenceChangeListener(this);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
protected void onResume() {
|
||||
super.onResume();
|
||||
|
||||
updateUi();
|
||||
initNumChannelsPreference();
|
||||
refreshMacAddress();
|
||||
}
|
||||
|
||||
private void initNumChannelsPreference() {
|
||||
ListPreference pref = (ListPreference) findPreference(KEY_NUM_CHANNELS);
|
||||
pref.setOnPreferenceChangeListener(this);
|
||||
|
||||
WifiManager wifiManager = (WifiManager) getSystemService(WIFI_SERVICE);
|
||||
/*
|
||||
* Generate the list of valid channel counts to show in the ListPreference.
|
||||
* The values are numerical, so the only text to be localized is the
|
||||
* "channel_word" resource.
|
||||
*/
|
||||
int[] validChannelCounts = wifiManager.getValidChannelCounts();
|
||||
if (validChannelCounts == null) {
|
||||
Toast.makeText(this, R.string.wifi_setting_num_channels_error,
|
||||
Toast.LENGTH_SHORT).show();
|
||||
return;
|
||||
}
|
||||
String[] entries = new String[validChannelCounts.length];
|
||||
String[] entryValues = new String[validChannelCounts.length];
|
||||
|
||||
for (int i = 0; i < validChannelCounts.length; i++) {
|
||||
entryValues[i] = String.valueOf(validChannelCounts[i]);
|
||||
entries[i] = getString(R.string.wifi_setting_num_channels_channel_phrase,
|
||||
validChannelCounts[i]);
|
||||
}
|
||||
pref.setEntries(entries);
|
||||
pref.setEntryValues(entryValues);
|
||||
int numChannels = wifiManager.getNumAllowedChannels();
|
||||
if (numChannels >= 0) {
|
||||
pref.setValue(String.valueOf(numChannels));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -80,14 +120,34 @@ public class IpSettings extends PreferenceActivity implements Preference.OnPrefe
|
||||
}
|
||||
|
||||
public boolean onPreferenceChange(Preference preference, Object newValue) {
|
||||
String value = (String) newValue;
|
||||
|
||||
if (!isIpAddress(value)) {
|
||||
Toast.makeText(this, R.string.wifi_ip_settings_invalid_ip, Toast.LENGTH_LONG).show();
|
||||
return false;
|
||||
String key = preference.getKey();
|
||||
if (key == null) return true;
|
||||
|
||||
if (key.equals(KEY_NUM_CHANNELS)) {
|
||||
try {
|
||||
int numChannels = Integer.parseInt((String) newValue);
|
||||
WifiManager wifiManager = (WifiManager) getSystemService(WIFI_SERVICE);
|
||||
if (!wifiManager.setNumAllowedChannels(numChannels)) {
|
||||
Toast.makeText(this, R.string.wifi_setting_num_channels_error,
|
||||
Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
} catch (NumberFormatException e) {
|
||||
Toast.makeText(this, R.string.wifi_setting_num_channels_error,
|
||||
Toast.LENGTH_SHORT).show();
|
||||
return false;
|
||||
}
|
||||
|
||||
} else {
|
||||
String value = (String) newValue;
|
||||
|
||||
if (!isIpAddress(value)) {
|
||||
Toast.makeText(this, R.string.wifi_ip_settings_invalid_ip, Toast.LENGTH_LONG).show();
|
||||
return false;
|
||||
}
|
||||
|
||||
preference.setSummary(value);
|
||||
}
|
||||
|
||||
preference.setSummary(value);
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -177,4 +237,14 @@ public class IpSettings extends PreferenceActivity implements Preference.OnPrefe
|
||||
}
|
||||
}
|
||||
|
||||
private void refreshMacAddress() {
|
||||
WifiManager wifiManager = (WifiManager) getSystemService(WIFI_SERVICE);
|
||||
WifiInfo wifiInfo = wifiManager.getConnectionInfo();
|
||||
|
||||
Preference wifiMacAddressPref = findPreference(KEY_MAC_ADDRESS);
|
||||
String macAddress = wifiInfo == null ? null : wifiInfo.getMacAddress();
|
||||
wifiMacAddressPref.setSummary(!TextUtils.isEmpty(macAddress) ? macAddress
|
||||
: getString(R.string.status_unavailable));
|
||||
}
|
||||
|
||||
}
|
||||
|
@@ -94,7 +94,7 @@ public class WifiLayer {
|
||||
private boolean mIsObtainingAddress;
|
||||
|
||||
/**
|
||||
* See {@link Settings.System#WIFI_NUM_OPEN_NETWORKS_KEPT}.
|
||||
* See {@link android.provider.Settings.Secure#WIFI_NUM_OPEN_NETWORKS_KEPT}.
|
||||
*/
|
||||
private int WIFI_NUM_OPEN_NETWORKS_KEPT;
|
||||
/**
|
||||
@@ -229,8 +229,8 @@ public class WifiLayer {
|
||||
mIntentFilter.addAction(WifiManager.RSSI_CHANGED_ACTION);
|
||||
mIntentFilter.addAction(WifiManager.NETWORK_IDS_CHANGED_ACTION);
|
||||
|
||||
WIFI_NUM_OPEN_NETWORKS_KEPT = Settings.System.getInt(mContext.getContentResolver(),
|
||||
Settings.System.WIFI_NUM_OPEN_NETWORKS_KEPT, 10);
|
||||
WIFI_NUM_OPEN_NETWORKS_KEPT = Settings.Secure.getInt(mContext.getContentResolver(),
|
||||
Settings.Secure.WIFI_NUM_OPEN_NETWORKS_KEPT, 10);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@@ -134,8 +134,8 @@ public class WifiSettings extends PreferenceActivity implements WifiLayer.Callba
|
||||
|
||||
mOpenNetworkNotificationsEnabled = (CheckBoxPreference) preferenceScreen
|
||||
.findPreference(KEY_OPEN_NETWORK_NOTIFICATIONS_ENABLED);
|
||||
mOpenNetworkNotificationsEnabled.setChecked(Settings.System.getInt(getContentResolver(),
|
||||
Settings.System.WIFI_NETWORKS_AVAILABLE_NOTIFICATION_ON, 0) == 1);
|
||||
mOpenNetworkNotificationsEnabled.setChecked(Settings.Secure.getInt(getContentResolver(),
|
||||
Settings.Secure.WIFI_NETWORKS_AVAILABLE_NOTIFICATION_ON, 0) == 1);
|
||||
|
||||
mAddOtherNetwork = preferenceScreen.findPreference(KEY_ADD_OTHER_NETWORK);
|
||||
|
||||
@@ -323,9 +323,9 @@ public class WifiSettings extends PreferenceActivity implements WifiLayer.Callba
|
||||
if (preference == mAddOtherNetwork) {
|
||||
showAddOtherNetworkDialog();
|
||||
} else if (preference == mOpenNetworkNotificationsEnabled) {
|
||||
Settings.System.putInt(getContentResolver(),
|
||||
Settings.System.WIFI_NETWORKS_AVAILABLE_NOTIFICATION_ON,
|
||||
mOpenNetworkNotificationsEnabled.isChecked() ? 1 : 0);
|
||||
Settings.Secure.putInt(getContentResolver(),
|
||||
Settings.Secure.WIFI_NETWORKS_AVAILABLE_NOTIFICATION_ON,
|
||||
mOpenNetworkNotificationsEnabled.isChecked() ? 1 : 0);
|
||||
} else if (preference instanceof AccessPointPreference) {
|
||||
AccessPointState state = ((AccessPointPreference) preference).getAccessPointState();
|
||||
showAccessPointDialog(state, AccessPointDialog.MODE_INFO);
|
||||
|