[Android]控制航模式(Airplane Mode)/
若手在航模式(Airplane Mode)中的,那所有的出入都被停止,像是牙(Bluetooth)及 WIFI 等等。如果晚上睡不希望有人打打,但又希望手上的其它程式能正常行的,也可以考的模式。
假者了一程式,使用者用可以把手切到航模式以防止人的,等到起床的到了之後再自把航模式。若能在程式中自由的控制航模式的,那使用起就比方便。
我可使用 android.provider.Settings.System 所提供的 API 存取系的定。例如者想知道目前是否已用航模式的:
原始 Android
import android.content.Context;
import android.provider.Settings;
public static boolean isAirplaneModeOn(Context context){
return Settings.System.getInt(context.getContentResolver(), Settings.System.AIRPLANE_MODE_ON, 0) != 0;
}
Settings.System.AIRPLANE_MODE_ON 就是我要取得的目,若要取得其它的可以考 android.provider.Settings.System 中的常清。
要定航模式的一是跟 android.provider.Settings.System 有:
import android.content.Context;
import android.content.Intent;
import android.provider.Settings;
public static void setAirplaneMode(Context context, boolean status){
// 先判目前是已否航模式
boolean isAirplaneModeOn = isAirplaneModeOn(context);
if((status && isAirplaneModeOn) || (!status && !isAirplaneModeOn)){
return;
}
int mode = status ? 1 : 0;
// 定航模式的播出去
Settings.System.putInt(context.getContentResolver(), Settings.System.AIRPLANE_MODE_ON, mode);
Intent i = new Intent(Intent.ACTION_AIRPLANE_MODE_CHANGED);
i.putExtra("state", mode);
context.sendBroadcast(i);
}
要注意的是,更系定是需要有 android.permission.WRITE_SETTINGS 限才行的,因此要得在 AndroidManifest.xml 中加上
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
只要再搭配 android.appwidget.AppWidgetProvider 就能航模式切的 AppWidget 工具。但比麻的是,若手有定用 PIN 的,在航模式後它也需要再入 PIN 才行。