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