小米手机8.0以上悬浮窗开启失败原因

1、需在AndroidManifest中添加权限

2、需在代码中查询是否开启权限

if(Build.VERSION.SDK_INT>=23)
        {
            if(Settings.canDrawOverlays(this))
            {
                //有悬浮窗权限开启服务绑定 绑定权限
                addView();

            }else{
                //没有悬浮窗权限m,去开启悬浮窗权限
                try{
                    Intent intent=new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION);
                    startActivityForResult(intent, OVERLAY_PERMISSION_REQ_CODE);
                }catch (Exception e)
                {
                    e.printStackTrace();
                }

            }
        } else{
            //默认有悬浮窗权限
            addView();
        }

3、LayoutParams中的type参数需这样设置

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
            layoutParams.type = WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY;
        } else {
            layoutParams.type = WindowManager.LayoutParams.TYPE_PHONE;
        }

 

你可能感兴趣的:(Android碎片化知识)