最近又学了一些android 的基础知识广播,之前因为一直没有用到所以就没怎么重视,在接触一些大牛们的项目源码后,发现广播确是蛮有用的。
于是自己就翻阅了几本书和几个相关视频,仿照着写了一个基本功能的测试app,功能大致是点击一个界面上的按钮会发送一个广播,在xml文件中已经事先注册了一个广播接收者,那个接收者的
onReceive方法中有一个启动dialog的方法:
AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(context); dialogBuilder.setTitle("Warning"); dialogBuilder.setMessage("test this app by my"); dialogBuilder.setCancelable(false); dialogBuilder.setPositiveButton("OK", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { Intent intent = new Intent(context, Otherclass.class); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(intent); } }); AlertDialog alertDialog = dialogBuilder.create(); alertDialog.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT); alertDialog.show();这样会启动一个dialog,但是我在6.0的手机测试中报错,我想又是权限问题,if (Build.VERSION.SDK_INT >= 23) { if(!Settings.canDrawOverlays(context)) { Intent intent2 = new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION); intent2.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(intent2); return; } else { //绘ui代码, 这里说明6.0系统已经有权限了 jieguo(context); } } else { //绘ui代码,这里android6.0以下的系统直接绘出即可 jieguo(context); }照着之前的摄像头的动态权限申请方法我试了一下,可以了。本来到这里算是结束了,但是我还有一个红米手机,于是我手贱试了一下,哎倒是出现了一个框,但是马上消失,可以说是一闪而过。
我郁闷了,难道代码有问题,不能啊,我分别在Nexus5x 6.0模拟机,4.4 杂牌酷派 4.4锤子上都可以运行啊。这个问题我足足测了两个消失,找了网上的也没有什么人碰到过,更不用说给解决方法了,后来我想是不是小米系统给我限制了?,我进入到app的权限界面果然有一个弹出框限制。这个坑人的东西,也不说明一个,也不自己弹个框出来警告一下我,这样我怎么知道啊。哎,反正最后是成功解决了。现在市面上andorid厂家越来越多,定制的android也越来越多了,在原有基础上改动很大啊。