第一行代码的版本有点老了,在实现5.5强制下线功能的时候,报错permission denied for this window type,网上一搜,权限方面有变化了,http://www.w2bc.com/article/android-6-0-runtime-permission,解决方法是按下面这个来的http://www.enjoydiy.com/3554.html,在ForceofflineReceiver.java中,
alertDialog.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);
这段代码后面加上
if(Build.VERSION.SDK_INT >= 23){ if(!Settings.canDrawOverlays(context)){ Intent intent1 = new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION); intent1.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(intent1); return; } }然后运行成功了。PS:感觉外面一层if是可以去掉的。这里加addFlags是因为不加就要报错。我用的API level是23。