Android对飞行模式下Wifi和蓝牙的控制通过如下两个数据库中的值控制:
airplane_mode_radios、airplane_mode_toggleable_radios,其值保存在Setting数据库Global表中.
/**
* A comma separated list of radios that need to be disabled when airplane mode
* is on. This overrides WIFI_ON and BLUETOOTH_ON, if Wi-Fi and bluetooth are
* included in the comma separated list.
*/
public static final String AIRPLANE_MODE_RADIOS = "airplane_mode_radios";
通过注释,可以看出,该值表示在打开飞行模式的时候需要关闭的radios,以逗号分隔。
若需要在打开飞行模式的时候关闭wifi和bluetooth,这该值为”wifi,bluetooth”
/**
* A comma separated list of radios that should to be disabled when airplane mode
* is on, but can be manually reenabled by the user. For example, if RADIO_WIFI is
* added to both AIRPLANE_MODE_RADIOS and AIRPLANE_MODE_TOGGLEABLE_RADIOS, then Wifi
* will be turned off when entering airplane mode, but the user will be able to reenable
* Wifi in the Settings app.
*
* {@hide}
*/
public static final String AIRPLANE_MODE_TOGGLEABLE_RADIOS = "airplane_mode_toggleable_radios";
通过注释,可以看出,该值表示在飞行模式下还能打开的radios(用户可以手动打开),以逗号分隔。
若需要在飞行模式下仍能够开启wifi和bluetooth,这该值为”wifi,bluetooth”
Radios列表项:
/**
* Constant for use in AIRPLANE_MODE_RADIOS to specify Bluetooth radio.
*/
public static final String RADIO_BLUETOOTH = "bluetooth";
/**
* Constant for use in AIRPLANE_MODE_RADIOS to specify Wi-Fi radio.
*/
public static final String RADIO_WIFI = "wifi";
/**
* {@hide}
*/
public static final String RADIO_WIMAX = "wimax";
/**
* Constant for use in AIRPLANE_MODE_RADIOS to specify Cellular radio.
*/
public static final String RADIO_CELL = "cell";
/**
* Constant for use in AIRPLANE_MODE_RADIOS to specify NFC radio.
*/
public static final String RADIO_NFC = "nfc";
默认值配置的位置如下:
/frameworks/base/packages/SettingsProvider/res/values/defaults.xml
<bool name="def_airplane_mode_on">false</bool>
<bool name="def_theater_mode_on">false</bool>
<!-- Comma-separated list of bluetooth, wifi, and cell. -->
<string name="def_airplane_mode_radios" translatable="false">cell,bluetooth,wifi,nfc,wimax</string>
<string name="airplane_mode_toggleable_radios" translatable="false">bluetooth,wifi,nfc</string>