圏外のテストを行うときに厳密でなくても良い場合は機内モードが便利ですよね。
アプリ(できればサービス)から特定のコマンドを検知して機内モードのON/OFFを切り替えられたら良いな、と思って少し調べてみました。
機内モードの切り替えは↓こんな感じでできるようです。
private void setAirplaneMode(boolean enable) {
int value = enable ? 1 : 0;
Settings.System.putInt(getContentResolver(), Settings.System.AIRPLANE_MODE_ON, value);
Intent intent = new Intent(Intent.ACTION_AIRPLANE_MODE_CHANGED);
intent.putExtra("state", value);
sendBroadcast(intent);
}
ほぼネットに転がっていた情報をほとんどコピペしただけなので、いまいち理解はしていません。
空行で区切られている上か下の処理だけで切り替えられると思ったのですが、どうも両方必要なようです。
あとSettings.System.putInt()を使うには[android.permission.WRITE_SETTINGS]のパーミッションが必要です。
振ったらモードが切り替わるサービスを作ろうかと思ったのですが、今日は時間がなかったのであきらめました。
また時間があるときに気が向いたら作ろう。
↓いつものようにサンプルです。
AirplaneModeChanger.zip
2010年11月05日
[Android] 機内モードの切り替え
posted by t2low at 02:55| Android