在AndroidManifest.xml文件中添加权限声明及申请权限代码
在Android 6.0以上的设备上,如果应用需要绘制在其他应用程序之上,就需要获取SYSTEM_ALERT_WINDOW权限。但是在申明该权限的时候,还需要考虑到系统版本的差异性,因为TARGET_SDK_VERSION需要小于23时,直接在AndroidManifest.xml中申明权限即可;TARGET_SDK_VERSION大于或等于23时,就需要动态申请权限。
以下是代码示例:
在AndroidManifest.xml文件中添加权限声明:
动态申请权限:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { if (!Settings.canDrawOverlays(context)) { Intent intent = new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION); intent.setData(Uri.parse("package:" + context.getPackageName())); context.startActivity(intent); } }
此代码会启动系统设置中的应用详情页面,允许用户手动授权SYSTEM_ALERT_WINDOW权限。
注意:如果应用没有获取SYSTEM_ALERT_WINDOW权限,可能会导致应用崩溃,因此需要在代码中捕获异常。