如何在安卓手机上启用/禁用飞行模式?

4

我正在编写一款Android应用程序,需要在特定时间段内禁用手机的信号,并需要重新启用信号。请问有人可以帮助我吗?

提前感谢。


您好,感谢以下答案,这适用于虚拟设备。但是在真实设备(三星Galaxy y)上无法工作:(,请问为什么呢?


2
重复的问题,许多人都问过:https://dev59.com/IW035IYBdhLWcg3wPdkS <- 这里应该有你要找的答案。 - bschultz
当您运行此代码时,三星Galaxy Y上出现了什么错误?是否出现异常?能否分享logcat输出? - Anton Cherkashyn
2个回答

1

试试这个:

public void onClick(View v){
        context = getApplicationContext();
    if (((ToggleButton)v).isChecked()){
        boolean isEnabled = Settings.System.getInt(context.getContentResolver(),
                Settings.System.AIRPLANE_MODE_ON, 0) == 1;
        if(isEnabled == false)
        {
        Settings.System.putInt(context.getContentResolver(),
                Settings.System.AIRPLANE_MODE_ON,1);
        Intent intent = new Intent(Intent.ACTION_AIRPLANE_MODE_CHANGED);
        intent.putExtra("state", 1);
        context.sendBroadcast(intent);
        }



        }else
        {

            Settings.System.putInt(context.getContentResolver(),
                    Settings.System.AIRPLANE_MODE_ON,0);
            Intent intent = new Intent(Intent.ACTION_AIRPLANE_MODE_CHANGED);
            intent.putExtra("state", 0);
            context.sendBroadcast(intent);

        }

};
});

在代码的else部分将数字1更改为数字0。

嗨,谢谢你的回答,这对虚拟设备有效。但是对于真实设备(三星Galaxy y)无效 :( ,请问有人能告诉我为什么吗? - Harsha

0

看看这个页面

http://dustinbreese.blogspot.com/2009/04/andoid-controlling-airplane-mode.html

// 切换飞行模式。

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

// 发送一个重新加载意图。

Intent intent = new Intent(Intent.ACTION_AIRPLANE_MODE_CHANGED);
intent.putExtra("state", !isEnabled);
sendBroadcast(intent);
where isEnabled is whether airplane mode is enabled or not.

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接