我对在Android中获取软件包的活动系统警报窗口权限感到有些困惑。我正在使用下面的代码,但是即使我们从“在其他应用程序上绘制”中禁止该应用程序,该代码也会返回0。有指针吗?
我的用例是检查一下是否找到了带有system_alert_window permission
的应用程序,我们需要告诉用户更改该应用程序的权限,以便进一步进行操作。
packageManager.checkPermission(“ android.permission.SYSTEM_ALERT_WINDOW”, info.packageName)
答案 0 :(得分:0)
我创建了此方法来检查是否授予了权限
public static boolean checkDrawOverlayPermission(Context context) {
/** check if we already have permission to draw over other apps */
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
return Settings.canDrawOverlays(context);
}
return true;
}
之后,如果您想将用户引导到可以启用该选项的地方,请执行以下操作:
Intent intent = new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION,
Uri.parse("package:" + activity.getPackageName()));