Android在版本> = 4.1时禁用飞行模式

时间:2013-04-10 07:15:57

标签: android

我需要在自助服务终端应用中禁用飞行模式,我尝试使用下面的代码段来覆盖设备设置

try {
    int airplane = Settings.System.getInt(getApplicationContext().getContentResolver(), "airplane_mode_on");
    if (airplane == 1) {
        getApplicationContext().sendBroadcast(new Intent("android.intent.action.AIRPLANE_MODE").putExtra("state", false));
    }
} catch (SettingNotFoundException e) {
    e.printStackTrace();
}

此代码似乎适用于Android 4.0版本,而在4.1及更高版本中它不起作用。我希望通过生根设备来访问系统设置使其工作。 实际上我的任务是从nexus平板电脑的状态栏中禁用飞行模式功能。让我知道有关这些建议的任何建议。

1 个答案:

答案 0 :(得分:2)

对于Android< = 4.1:

static boolean getAirplaneMode(Context context)
{
   return Settings.System.getInt(context.getContentResolver(), Settings.System.AIRPLANE_MODE_ON, 0) != 0;
}


static void setAirplaneMode(Context context, boolean mode)
{
   if (mode != getAirplaneMode(context))
   {
      Settings.System.putInt(context.getContentResolver(), Settings.System.AIRPLANE_MODE_ON, mode ? 1 : 0);
      Intent newIntent = new Intent(Intent.ACTION_AIRPLANE_MODE_CHANGED);
      newIntent.putExtra("state", mode);
       context.sendBroadcast(newIntent);
    }
}

对于Android 4.2,请查看Modify AIRPLANE_MODE_ON on Android 4.2 (and above)