首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何默认开启屏幕覆盖权限

如何默认开启屏幕覆盖权限
EN

Stack Overflow用户
提问于 2016-10-31 13:41:38
回答 5查看 23.4K关注 0票数 7

如何在安装应用程序时默认启用屏幕覆盖权限。

现在我面临着一些问题,当捕获图像时询问运行时的权限,一些设备不允许它打开屏幕覆盖设置对话框。从用户的角度来看,他们不知道为什么会显示对话框以及他们做了什么。

当打开覆盖设置屏幕时,某些应用程序会自动启用屏幕覆盖权限。

下面我使用代码。

代码语言:javascript
运行
复制
 if (!Settings.canDrawOverlays(this)) {
        Intent myIntent = new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION);
        startActivityForResult(myIntent, 101);
 }  

此代码直接打开覆盖设置屏幕。他们展示了所有应用程序的列表。

我的要求是显示权限特定的应用程序或启用覆盖权限,而不需要用户交互。

确实需要……

EN

回答 5

Stack Overflow用户

发布于 2016-12-19 20:01:37

在intent中发送您的包名,就像前面提到的in the documentation

输入:可选地,意图的数据URI可以指定应用程序包名,以直接调用特定于包名的管理图形用户界面。例如"package:com.my.app“。

所以,像这样做:

代码语言:javascript
运行
复制
if (!Settings.canDrawOverlays(this)) {
    int REQUEST_CODE = 101;
    Intent myIntent = new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION);
    myIntent.setData(Uri.parse("package:" + getPackageName()));
    startActivityForResult(myIntent, REQUEST_CODE);
}  
票数 5
EN

Stack Overflow用户

发布于 2016-10-31 13:46:02

在清单中添加以下代码

代码语言:javascript
运行
复制
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
票数 2
EN

Stack Overflow用户

发布于 2016-10-31 14:18:02

如果您使用的是高于6.0版本的设备,请按照以下步骤操作

转到设置 -->选择应用程序->再次选择应用程序中的设置图标->选择在其他应用程序上绘制

选择您的应用程序并启用在其他应用程序上绘制的权限

Android "Screen Overlay Detected" message if user is trying to grant a permission when a notification is showing

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40337131

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档