Yoda_wang 2016-03-03 16:22 采纳率: 0%
浏览 17667
已结题

Android无法解决permission denied for this window type

安卓学者请教各位大哥们:我的代码出现了哪里的问题 当我需要系统弹出一个系统对话框的时候老是报错
代码如下:这是我在Mainfest中注册的内容

 <?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.wangsj.broadcastbestpractice"
    android:versionCode="1"
    android:versionName="1.0">
    <uses-sdk
        android:minSdkVersion="14"
        android:targetSdkVersion="19"/>
    <uses-permission android:name="android.permission.SYSTEM_OVERLAY_WINDOW" />
    <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".LoginActivity"
            android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>
                <category android:name="android.intent.category.LAUNCHER"/>

            </intent-filter>

        </activity>
        <activity android:name=".MainActivity">
        </activity>
        <receiver android:name=".ForceOfflineReceiver">
            <intent-filter>
                <action android:name="com.example.broadcastbestpractice.FORCE_OFFLINE"/>
            </intent-filter>
        </receiver>
    </application>

</manifest>

这是我在函数中调用系统对话框的的代码

 public class ForceOfflineReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(final Context context, Intent intent) {
        AlertDialog.Builder dialogBulider = new AlertDialog.Builder(context);
        dialogBulider.setTitle("Warning");
        dialogBulider.setMessage("You are forced to be offline . Please try login again");
        dialogBulider.setCancelable(false);
        dialogBulider.setPositiveButton("OK", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                ActivityCollector.finishAll();
                Intent intent = new Intent(context, LoginActivity.class);
                intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                context.startActivity(intent);
            }
        });
        AlertDialog alertDialog = dialogBulider.create();
        alertDialog.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);
        alertDialog.show();
    }
}

我的模拟器用的是android6.0 api用的是23 我已经仔细核对了代码与《第一行代码》中的代码完全相同,为什么我的不能运行成功求解释。新人c币不多,请个各位大侠行行好

  • 写回答

11条回答 默认 最新

  • 请叫我东子 博客专家认证 2016-03-03 17:16
    关注

    android6.0需要申请权限

    评论

报告相同问题?

悬赏问题

  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog