需要适配对话框的类型,否则对话框无法在广播接收器里弹出
Window window = dialog.getWindow();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
window.setType(WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY);
} else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
window.setType(WindowManager.LayoutParams.TYPE_PHONE);
} else {
window.setType(WindowManager.LayoutParams.TYPE_TOAST);
}
弹窗权限申请
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M) {
if (!Settings.canDrawOverlays(this)) {
Intent intent = new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION);
intent.setData(Uri.parse("package:" + getPackageName()));
startActivityForResult(intent, 2003);
}
}