Android飞机模式示例

时间:2015-01-19 16:57:25

标签: android

我使用这段代码打开和关闭Android 4.1.2设备的飞行模式:

boolean isEnabled = Settings.System.getInt(
                     getContentResolver(),
                     Settings.System.AIRPLANE_MODE_ON, 0) == 1;

             Settings.System.putInt(
                     getContentResolver(),
                     Settings.System.AIRPLANE_MODE_ON, isEnabled ? 0 : 1);

             Intent intent = new Intent(Intent.ACTION_AIRPLANE_MODE_CHANGED);
             intent.putExtra("state", !isEnabled);
             sendBroadcast(intent);

代码运行正常,但为了完全理解它的工作原理,我有一些问题。

  1. 如果我发表评论,为什么此代码不起作用:

    Intent intent = new Intent(Intent.ACTION_AIRPLANE_MODE_CHANGED);                  intent.putExtra(“state”,!isEnabled);                  sendBroadcast(意图);

  2. 在设置中进行任何更改后,是否必须始终播放意图?

  3. 有人可以详细解释一下吗?

1 个答案:

答案 0 :(得分:1)

Settings.System.putInt()实际上更改了int值,但系统没有通知它。它不会在循环中读取此设置...

因此,为了使系统了解该更改,您发送系统侦听的广播,然后解析其内容,注意设置更改并相应地执行操作。

因此,您无法在不发送广播的情况下使用此代码,因为这样可以通知系统您刚才所做的更改。是的,你必须使用该广播来注意它。