如何在安装应用程序时默认启用屏幕覆盖权限。
现在我面临一些问题,当捕获图像询问运行时权限时某些设备不允许它打开屏幕覆盖设置对话框的权限。从用户的角度来看,他们不知道对话框显示的原因以及他们做了什么。
当打开覆盖设置屏幕时,某些应用程序会自动启用屏幕覆盖权限。
下面我使用代码。
if (!Settings.canDrawOverlays(this)) {
Intent myIntent = new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION);
startActivityForResult(myIntent, 101);
}
此代码直接打开叠加设置屏幕。他们显示所有申请表。
我的要求是显示权限特定的应用程序或启用覆盖权限而不进行用户交互。
需要......
答案 0 :(得分:4)
您需要做的是将您的包名称发送到意图中,如上所述in the documentation。
输入:可选地,Intent的数据URI可以指定应用程序 包名称直接调用特定于的管理GUI 包裹名字。例如“package:com.my.app”。
所以,做这样的事情:
if (!Settings.canDrawOverlays(this)) {
Intent myIntent = new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION);
myIntent.setData(Uri.parse("package: " + getPackageName()));
startActivityForResult(myIntent, 101);
}
答案 1 :(得分:1)
如果您使用的操作系统大于6.0,请按照以下步骤进行操作
转到设置 - >选择应用 --->再次选择Apps中的设置图标--->选择绘制其他应用程序
选择您的应用程序并启用其他应用程序permition的绘制
答案 2 :(得分:0)
在清单中添加以下代码
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
答案 3 :(得分:0)
在请求权限之前,您不必启用屏幕覆盖权限,显示对话框,向用户解释您需要权限的原因并请求他们接受权限。如果用户选择不显示权限对话框。否则会向他显示权限对话框。这有助于您避免屏幕叠加权限。
答案 4 :(得分:0)
您必须离开活动才能获得将屏幕绘制在其他活动之上的权限。这是你无法避免的。
为此,您必须通过.welcome-show{
float: left;
}
.rank{
float: none;
}
意图访问设置。由于您希望拥有一个用户友好的应用程序,当您需要获得此类许可时,请触发一些对话框,说明您为什么需要这些应用程序,并选择接受并拒绝您的要求。接受后,触发意图并开始活动。