在 4.4~5.1.1 版本之间,和 6.0~最新版本之间的适配方法是不一样的,之前的版本由于 google 并没有对这个权限进行单独处理,所以是各家手机厂商根据需要定制的,所以每个权限的授权界面都各不一样,适配起来难度较大,6.0 之后适配起来就相对简单很多了。6.0之前的我就不记录了,不通厂商的适配情况不一样,而且现在基本上都是6.0以后的系统了。
具体的可以看这篇 https://www.cnblogs.com/zhujiabin/p/9172848.html,写的很全面
6.0之后的申请悬浮窗权限:
首先要在 Manifest 中静态申请<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
权限
代码中
protected boolean checkOverlayPermission() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
if (!Settings.canDrawOverlays(this)) {
Toast.makeText(this, "需要悬浮窗权限", Toast.LENGTH_LONG).show();
Intent intent = new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION, Uri.parse("package:" + getPackageName()));