Android Studio学习记录-第四周

时间:2022-09-11 18:00:10

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