Android 悬浮窗权限校验

Posted lonelyxmas

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android 悬浮窗权限校验相关的知识,希望对你有一定的参考价值。

原文:Android 悬浮窗权限校验

悬浮窗权限:

<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />

权限检验和请求:


            //检查是否已经授予权限,大于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{
                //已经有权限,可以直接显示悬浮窗
            }
        

其他注意问题:

        //因为部分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;
        }

?

以上是关于Android 悬浮窗权限校验的主要内容,如果未能解决你的问题,请参考以下文章

Android悬浮窗

Android WindowManager悬浮窗:不需要申请权限实现悬浮

android里悬浮窗如何覆盖状态栏

Android免权限悬浮窗组件 - FloatingX

仿ios的悬浮窗查看最近应用怎么不能用?

Android 应用内悬浮控件实践总结