5.2.1动态注册监听网络变化
在onReceive方法中调用getActiveNetworkInfo()时,必须要在app/src/main/AndroidManifest.xml
里添加权限;
5.2.2
开机广播目前还没有实现。
5.3.1发送标准广播
点击按钮之后没有显示toast,
原因:由于《第一行代码》第二版是基于android7.0进行开发的,而android O(8.0)对 于发送广播进行了限制,我们要指定包名;
此处代码需要调整:
Intent intent = new Intent("com.example.boradcasttest.MY_BROADCAST"); intent.setComponent(new ComponentName("com.example.broadcasttest","com.example.broadcasttest.MyBroadcastReceiver")); sendBroadcast(intent);
调整后即可实现。
5.3.2发送有序广播
这里我们已经可以接受到广播了,但是我们想要让其他应用也接受到这条广播怎么办呢?
如果我们按照《第一行代码》中的代码会发现,broadtest2无法接受到广播
对此,我们需要再发送一条广播,并将这个intent指定为第二个app的package就好了,我们就都可以接收到了。代码如下
Intent intent = new Intent("com,example.broadcasttest.MY_BROADCAST"); intent.setComponent(new ComponentName("com.example.broadcasttest" ,"com.example.broadcasttest.MyBroadcastReceiver")); sendBroadcast(intent); intent.setComponent(new ComponentName("com.example.broadcasttest2" ,"com.example.broadcasttest2.AnotherBroadcastReceiver")); sendBroadcast(intent);