Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/217.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 飞行模式的Settings.system.putInt()不工作_Android - Fatal编程技术网

Android 飞行模式的Settings.system.putInt()不工作

Android 飞行模式的Settings.system.putInt()不工作,android,Android,实际上,在我的项目中,我想自动更改飞行模式和自动旋转设置,而且我还尝试了stakcoverflow和许多其他网站中的许多链接 我在使用它,但在执行过程中什么也没发生 飞行模式 public void actFlight(int val) { switch(val) { case 0: Log.v("Mani", "Flight 0"); Settings.System.putInt(context.getConten

实际上,在我的项目中,我想自动更改飞行模式和自动旋转设置,而且我还尝试了stakcoverflow和许多其他网站中的许多链接

我在使用它,但在执行过程中什么也没发生

飞行模式

public void actFlight(int val)
{
    switch(val)
    {
        case 0:
            Log.v("Mani", "Flight 0");
            Settings.System.putInt(context.getContentResolver(), Settings.System.AIRPLANE_MODE_ON, 1);
            break;

        case 1:
            Log.v("Mani", "Flight 1");
            Settings.System.putInt(context.getContentResolver(), Settings.System.AIRPLANE_MODE_ON, 0);
            break;

        case 2:
            Log.v("Mani", "Flight 2");
            boolean isEnabled = Settings.System.getInt(context.getContentResolver(), Settings.System.AIRPLANE_MODE_ON, 0) == 1;
            // toggle airplane mode
            Settings.System.putInt(context.getContentResolver(), Settings.System.AIRPLANE_MODE_ON, isEnabled ? 0 : 1);
            break;
    }
}
val为0、1或2

0用于打开飞机模式 1用于关闭飞机模式 2用于切换飞机模式切换

我曾经像上面那样更改自动旋转设置,它工作得很好,但我不能切换飞机模式

我还多次与其他一些例子进行比较 没有显示错误,设置也没有更改。。。我能做什么


注意:我在服务中定义并调用了此函数(也定义了自动旋转)

您需要发送带有
意图的广播。操作\u飞机\u模式\u已更改
将代码更改为:

boolean isEnabled = Settings.System.getInt(
                paramContext.getContentResolver(), 
                  Settings.System.AIRPLANE_MODE_ON, 0) == 1;
        if(isEnabled==true)
        {
            Settings.System.putInt(
                    paramContext.getContentResolver(),
                  Settings.System.AIRPLANE_MODE_ON, isEnabled ? 0 : 1);

            // Post an intent to reload
            Intent intent = new Intent(Intent.ACTION_AIRPLANE_MODE_CHANGED);
            intent.putExtra("state", !isEnabled);
            paramContext.sendBroadcast(intent);
        }
        else
        {
            Settings.System.putInt(
                    paramContext.getContentResolver(),
                  Settings.System.AIRPLANE_MODE_ON, isEnabled ? 0 : 1);

            // Post an intent to reload
            Intent intent = new Intent(Intent.ACTION_AIRPLANE_MODE_CHANGED);
            intent.putExtra("state", !isEnabled);
            paramContext.sendBroadcast(intent);
        }
注意:- 确保您在manifest.xml中具有以下权限:

<uses-permission android:name="android.permission.WRITE_SETTINGS"/>
<uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS"/>
</manifest>

在您的prj清单文件中添加以下权限

  <uses-permission android:name="android.permission.WRITE_SETTINGS"/>
  <uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS"/>


谢谢@imran khan,“发布意图”帮助了我,现在它的工作非常完美..../发布重新加载意图意图意图=新意图(意图、行动、飞机、模式改变);intent.putExtra(“状态”!isEnabled);paramContext.sendBroadcast(意图);另一个问题是我无法通过设置打开/关闭GPS。安全。。。。。。我还插入了无用的…,你能帮帮我吗…@Thamizhan:当然,我会帮你做一件事,在/OF上发布一个关于GPS的新问题,因为这个问题是关于飞行模式的。但是我搜索了这个,他们说。。。。。写入安全设置权限不适用于不属于固件的应用程序,因为安全设置旨在防止第三方应用程序修改。“这是真的吗…,那么我如何才能做到这一点…@Thamizhan:如果这个答案真的能帮助你解决你的问题,那就把它标记为答案。”。我在等你问另一个关于GPS开/关的问题。谢谢朋友:)你可以为GPS开/关私有void turnGPSOn()试试这段代码{try{String provider=Settings.Secure.getString(getContentResolver(),Settings.Secure.LOCATION_PROVIDERS_ALLOWED);如果(!provider.contains(“GPS”){final Intent poke=new Intent();poke.setClassName(“com.android.Settings”,“com.android.settings.widget.SettingsAppWidgetProvider”);poke.addCategory(Intent.CATEGORY_可选);poke.setData(Uri.parse(“3”);//设置3用于gps,设置3用于Bluthoth sendBroadcast(poke);}}catch(异常e){}是的,我已经将这两个权限放在清单中了,但是每当我运行代码时..就会出现Logcat错误,原因是:java.lang.SecurityException:权限拒绝:写入安全设置需要android.Permission.WRITE\u secure\u设置