我的Android应用程序需要显示在其他应用程序的权限,这是屏幕覆盖权限。
- 设置.ACTION_MANAGE_OVERLAY_PERMISSION
- 系统警报窗口
在正常的android操作系统设备中,我可以使用此代码轻松地给予权限。
if (!Settings.canDrawOverlays(this) && !Constant.IsOverlayPermissionGiven) {
Intent intent = new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION,
Uri.parse("package:" + getPackageName()));
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
intent.addFlags(Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS);
startActivityForResult(intent, REQUEST_CODE);
handler.postDelayed(checkSettingOn, 200);
return false;
} else {
return true;
}
但在Android Go版设备权限屏幕上显示“此功能不可用”的消息,并警告“此功能已关闭,因为它会减慢您的手机”
如何以编程方式获取有关功能可用或不可用的信息?如何绕过没有屏幕覆盖功能的设备的权限屏幕?
1条答案
按热度按时间ljsrvy3e1#
如果你阅读Android 11源代码,你可以看到它只使用
ActivityManager.isLowRamDevice()
来检查SYSTEM_ALERT_WINDOW
功能是否可用packages\apps\Settings\src\com\android\settings\Utils.java