自动配置文件更改器应用程序显示SecurityException:Permission Denial:不允许发送广播android.intent.action.AIRPLANE_MODE

时间:2015-06-10 21:24:00

标签: android broadcastreceiver android-4.4-kitkat android-permissions android-securityexception

我正在开发Android应用程序,其中我想自动从振铃模式更改配置文件到飞机模式。应用程序在Android 2.3到4.2上工作正常,但不能在4.4 kitkat上工作。 Logcat显示此错误

java.lang.SecurityException: Permission Denial: not allowed to send broadcast android.intent.action.AIRPLANE_MODE from pid

我已添加以下权限

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
    <uses-permission android:name="android.permission.VIBRATE" />
    <uses-permission android:name="android.permission.WAKE_LOCK" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.WRITE_SETTINGS" /> 

但在4.4

中也会出现同样的问题

错误指向此代码

Airplane_mode(false);

//

public void Airplane_mode(boolean isEnabled) {

        if (isEnabled) {
            Settings.System.putInt(this.getContentResolver(),
                    Settings.System.AIRPLANE_MODE_ON, 1);

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

        } else if (!isEnabled) {
            Settings.System.putInt(this.getContentResolver(),
                    Settings.System.AIRPLANE_MODE_ON, 0);
            Settings.System.putInt(this.getContentResolver(),
                    Settings.System.AIRPLANE_MODE_RADIOS, 1);
            Intent intent = new Intent(Intent.ACTION_AIRPLANE_MODE_CHANGED);
            intent.putExtra("state", isEnabled);
            sendBroadcast(intent);
        }

    }

//

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

请解决我的问题谢谢

0 个答案:

没有答案