小米手機8.0以上懸浮窗開啓失敗原因

1、需在AndroidManifest中添加權限

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

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;
        }

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章