4

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

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 及更高版本中不起作用。我希望通过 root 设备访问系统设置来使其工作。实际上,我的任务是从 nexus 平板电脑的状态栏中禁用飞行模式功能。让我知道有关这些实施的任何建议。

4

1 回答 1

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(及更高版本)

于 2013-04-10T20:24:12.597 回答