我对在 Android 中获取软件包的 Activity 系统警报窗口权限感到有些困惑。我正在使用下面的代码,但即使我们从“绘制其他应用程序”中禁止该应用程序,此代码也会返回 0。有任何指示吗?
我的用例是进行检查,如果发现任何具有 system_alert_window 权限
的应用程序,我们需要告诉用户更改该应用程序权限才能继续。
packageManager.checkPermission("android.permission.SYSTEM_ALERT_WINDOW", info.packageName)
最佳答案
我创建了这个方法来检查是否授予了权限
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()));
关于android - 如何检查将 Draw over other apps 设为 True 的应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53930842/