android动态申请悬浮框权限,Android 悬浮窗权限校验
悬浮窗权限:android权限检验和请求:ui//检查是否已经授予权限,大于6.0的系统适用,小于6.0系统默认打开,无需理会if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M&&!Settings.canDrawOverlays(this)) {//没有权限,须要申请权限,由于是打开一个受权页面,因此拿不到返回状态的,因此建
悬浮窗权限:android
权限检验和请求:ui
//检查是否已经授予权限,大于6.0的系统适用,小于6.0系统默认打开,无需理会
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M&&!Settings.canDrawOverlays(this)) {
//没有权限,须要申请权限,由于是打开一个受权页面,因此拿不到返回状态的,因此建议是在onResume方法中重新执行一次校验
Intent intent = new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION);
intent.setData(Uri.parse("package:" + getPackageName()));
startActivityForResult(intent, 100);
}else{
//已经有权限,能够直接显示悬浮窗
}
其余注意问题:this
//由于部分type在部分系统中已经废弃,懒得看文档,下面是我亲测是兼容7.0和8.0系统的方法
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.O) {
wmParams.type = WindowManager.LayoutParams.TYPE_SYSTEM_ALERT;
} else {
wmParams.type = WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY;
}
更多推荐
所有评论(0)