使用Android的广播机制,可以在应用间异步的传递消息,解耦应用间的强关联。也可以用来接收系统发出的各种事件。本文以接收短信为例,演示如何使用广播机制。
定义权限
短信属于用户隐私,在获取短信前,应用需要申请相关权限。
- 在 AndroidManifest.xml 中加入权限请求
1 | <uses-permission android:name="android.permission.RECEIVE_SMS" /> |
- 在代码中,也需要检查用户是否允许
1 | if (!checkPermission(Manifest.permission.RECEIVE_SMS)) { |
方法 checkPermission 的代码:
1 | private boolean checkPermission(String permission) { |
定义接收者
定义一个继承于 BroadcastReceiver 的类。 在 onReceive 方法中实现对对象的接收和解析。
1 | public class SMSBroadcastReceiver extends BroadcastReceiver { |
注册接收者
在 AndroidManifest.xml 的 application中加入接收者定义
1 | <receiver android:name=".SMSBroadcastReceiver"> |