标签:android-permissions permissions overlay android
我收到以下异常:
android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.settings.action.MANAGE_OVERLAY_PERMISSION dat=package:com.my.app }
at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1816)
at android.app.Instrumentation.execStartActivity(Instrumentation.java:1525)
at android.app.Activity.startActivityForResult(Activity.java:4265)
这是在已经使用了几年并且可以完美运行的应用程序中发生的.现在,对于型号为ZUK Z1的android 7设备,出现了此异常.有任何想法吗?似乎是ROM的问题.此rom是否提供获取叠加图许可的替代方法?
编辑-这是我用来获取权限的功能
public static void checkOverlayPermission(Activity activity)
{
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && !Settings.canDrawOverlays(activity))
{
Intent intent = new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION, Uri.parse("package:" + activity.getPackageName()));
activity.startActivityForResult(intent, BaseDef.OVERLAY_PERMISSION_REQ_CODE);
}
}
解决方法:
试试这个.这对我有用.可能对你有帮助
if (!Settings.canDrawOverlays(this)) {
Intent localIntent = new Intent("android.settings.action.MANAGE_OVERLAY_PERMISSION");
localIntent.setData(Uri.parse("package:" + getPackageName()));
localIntent.setFlags(268435456);
startActivity(localIntent);
}
如果您的ROM是问题,请尝试此
基本上,您不能只检查设置有问题的所有ROM.上面的代码在android N中也可以正常工作.我自己测试过.
您可以做的是将代码放在try catch块中,当您进入catch块时,向用户显示一个对话框,要求用户手动授予覆盖权限,而不是直接将其带到设置页面.
基本上有一些rom,而自定义rom某些系统设置存在问题,因此这是解决这些情况的最佳方法.
标签:android-permissions,permissions,overlay,android 来源: https://codeday.me/bug/20191111/2019466.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。