android 4.2 系統以後的飛航模式,android4.2
Android 4.2 之後 系統不予許第三方軟體去設定飛航模式,除非你的app是系統應用,得到了root許可權
//擷取當前的飛航模式狀態 需要根據不同的Android版本進行修改@SuppressWarnings("deprecation")public boolean isAirplaneModeOn() { //4.2以下 if (Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN_MR1) { return Settings.System.getInt(getContentResolver(), Settings.System.AIRPLANE_MODE_ON, 0) != 0; } else //4.2或4.2以上 { return Settings.Global.getInt(getContentResolver(), Settings.Global.AIRPLANE_MODE_ON, 0) != 0; } }
//設定飛航模式@SuppressWarnings("deprecation")public void setAirplaneModeOn(boolean isEnable) { if (Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN_MR1) { Settings.System.putInt(getContentResolver(), Settings.System.AIRPLANE_MODE_ON,isEnable ? 1:0); } else //4.2或4.2以上 { Settings.Global.putInt(getContentResolver(), Global.AIRPLANE_MODE_ON, isEnable? 1 : 0); } Intent intent = new Intent(Intent.ACTION_AIRPLANE_MODE_CHANGED); intent.putExtra("state", isEnable); sendBroadcast(intent); }
需要注意的是,在4.2上其實App是沒有許可權修改Setting.Global的,解決辦法是把你的App放到系統的system/app目錄下,然後install。這樣一來,App成為system app,可以獲得寫Setting.Global的許可權。。