Android15默认授权浮窗权限
我们经常有那种需求,客户需要定制的apk集成在ROM中,并且默认授予其【显示在其他应用的上层】权限,也就是我们常说的浮窗权限,那么我们就可以通过以下方法在wms、ams等系统服务的systemReady()方法中调用即可实现预置应用默认授权浮窗权限这个需求
/*** 授权[显示在其他应用的上层]权限,浮窗权限,Android 15,API 35验证有效* android:sharedUserId="android.uid.system"** @param context 上下文* @param pkg 包名:com.pranavpandey.rotation* @param isGrant 授权:true,取消授权:false*/private static void grantSystemAlertWindowPermission(Context context, String pkg, boolean isGrant) {Log.e(TAG, "----liyiwei---- 请求开启或者关闭浮窗权限: " + pkg + " " + isGrant);try {ApplicationInfo applicationInfo = context.getPackageManager().getApplicationInfo(pkg, PackageManager.GET_ACTIVITIES);int uid = applicationInfo.uid;Log.e(TAG, "----liyiwei---- 要开启浮窗权限的应用的uid为: " + uid + " " + pkg);AppOpsManager appOpsManager = (AppOpsManager) context.getSystemService(Context.APP_OPS_SERVICE);appOpsManager.setUidMode("android:system_alert_window",uid,isGrant ? AppOpsManager.MODE_ALLOWED : AppOpsManager.MODE_DEFAULT);Log.e(TAG, "----liyiwei---- 变更浮窗权限状态成功");} catch (PackageManager.NameNotFoundException e) {Log.e(TAG, "----liyiwei---- 开启浮窗权限失败: " + e);}}
如果以上内容对您有所帮助,欢迎打赏,如果有任何疑问也欢迎指点一二,相互学习