编码-Android无法解决permission denied for this window type

问题描述

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币不多,请个各位大侠行行好

解决方案

在没有了解6.0的情况下,建议不要使用那么高的版本,关于权限:http://www.w2bc.com/article/android-6-0-runtime-permission

解决方案二:

19以上 推荐是用 toast模式 不要使用TYPE_SYSTEM_ALERT

解决方案三:

android6.0需要申请权限

解决方案四:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
if (checkSelfPermission(Manifest.permission.SYSTEM_OVERLAY_WINDOW) != PackageManager.PERMISSION_GRANTED
&& checkSelfPermission(Manifest.permission.SYSTEM_OVERLAY_WINDOW) != PackageManager.PERMISSION_GRANTED) {
String[] permissions = new String[]{Manifest.permission.SYSTEM_ALERT_WINDOW, Manifest.permission.SYSTEM_OVERLAY_WINDOW};
ActivityCompat.requestPermissions(this, permissions, 10);
return;
}
}

            重写
            @Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions,
                                       @NonNull int[] grantResults) {
    loge(TAG, "requestCode" + requestCode + "permissions"+ Arrays.toString(permissions)+"grantResults"+Arrays.toString(grantResults));
}
    可以看到申请是否成功

解决方案五:

我也是这个问题,你解决了吗?

解决方案六:

要显示出来也很简单,把下面这句话屏蔽了应该就可以了。这句话用的权限级别比较高,一般系统电量提示的那种对话框都用的这种权限。
alertDialog.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);

时间: 2024-08-30 17:03:25

编码-Android无法解决permission denied for this window type的相关文章

异常-android:关于open failed: EACCES (Permission denied)

问题描述 android:关于open failed: EACCES (Permission denied) DownloadManager下载的东西位于内置sd卡的download文件夹下.下载完后,需要解压到外置sd卡的一个目录下.但是解压的时候,抛出异常open failed: EACCES (Permission denied). Manifest 已经添加权限 解决方案 文件系统的权限没有添加,不是应用的权限 解决方案二: 之前处理外置sdcard的时候没有出现权限问题,今天.....

android 中添加了读写文件的权限,却报(Permission denied)错误

问题描述 android 中添加了读写文件的权限,却报(Permission denied)错误 android 中添加了读写文件的权限,却报open failed: EACCES (Permission denied) 太坑人了! 添加了权限 //代码部分: File file2 = new File(Environment.getExternalStorageDirectory(),"file2.txt"); file2.setWritable(true); file2.setRe

LiteSpeed服务器出现 403 Permission Denied错误的解决办法

最近有个客户说他的 ECshop 外贸网店后台更新一些数据库的时候出现 403 错误: 403 Permission Denied You do not have permission for this request /admin/article.php Web 服务器是 LiteSpeed Web 服务器是 LiteSpeed, 我查了好几天都没查到是什么问题造成的,有些文章能正常更新,有些文章更新就出现 403 错误,当时我想应该是文章内容的问题,以为是一些特殊符号造成的,但把 html

android localsocket 连接本地socket报Permission denied异常

问题描述 android localsocket 连接本地socket报Permission denied异常 LocalSocket socket = new LocalSocket(); LocalSocketAddress addr = new LocalSocketAddress("netcontrol", LocalSocketAddress.Namespace.RESERVED); socket.connect(addr); socket.close(); 本地服务端已经配

android导入环信3.0 open failed: EACCES (Permission denied)

问题描述 能够正常跑起来,就是一直再打印这个鬼东西01-30 14:12:01.392 17398-17412/com.easemob.chatuidemo W/System.err: java.io.FileNotFoundException: /storage/emulated/0/Android/data/com.easemob.chatuidemo/easemob-demo#chatdemoui/log/20160130/000.html: open failed: EACCES (Pe

php include提示failed to open stream: Permission denied in错误

  出现failed to open stream: Permission denied in是apache运行用户没用权限去访问指定的文件了,所以导致目录文件打不开了. 在打开浏览器时提示 Warning: include (/global.php) [function.include]: failed to open stream: Permission denied in index.php on line 21 Warning: include() [function.include]:

三星A7100文件写入失败(Permission denied)

问题描述 三星A7100文件写入失败(Permission denied) 1C 如题,三星A7100文件写入失败:java.io.FileNotFoundException: /storage/emulated/0/abc.apk: open failed: EACCES (Permission denied),做自动更新从服务器下载apk存储到手机上,其他两台真机都能存储成功,唯独三星A7100这台不行,不懂为什么,求大神帮助.权限都加了 源码:public class UpdateMang

运维小知识--- -bash: /usr/local/maven/apache-maven-3.2.3/bin/mvn: Permission denied

-bash: /usr/local/maven/apache-maven-3.2.3/bin/mvn: Permission denied         背景:         刚刚在Linux系统系执行mvn -v的时候出现了下面的错误(如下图),而这种错误一看就是权限的问题,只需设置好权限就OK.           解决方法:         输入:chmod a+x/opt/apache-maven-3.2.2/bin/mvn(如下图)         扩展:         opti

编码-android studio中AndroidManifest出错

问题描述 android studio中AndroidManifest出错 Manifest.xml源码如下: <?xml version="1.0" encoding="utf-8"?> package="com.example.administrator.myapplication" > <uses-permission android:name="android.permission.INTERNET&qu