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

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

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平板电脑的状态栏中禁用飞行模式功能.让我知道有关这些建议的任何建议.

最佳答案 对于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)

点赞