当拨打电话时,拨打电话程序会向系统发生消息,来告诉系统自己在干嘛,这里就是所谓的广播,这样做是为了方便跟其他应用程序或者底层沟通。那么如何才能让其他应用程序拿到这个消息(广播),这里就需要借助广播接收者BroadcastReceiver这个类。
BroadcastReceiver的onReceiver方法用来接收广播,当一个程序安装到系统的时候,会注册到系统中,这样就能得到系统中的各种广播或者其他有信息,然后与其他程序打交道。过滤到自己想要的广播得指定IntentFilter特定的action,还得是否有这个权限读到这个广播消息,并且必须对该广播接收者进行注册。以下是实现方式:
第一种实现方式,写在AndroidManifest.xml里
<receiver android:name=".MyReceiver"> <intent-filter> <action android:name="android.intent.action.PHONE_STATE"/> </intent-filter> </receiver>
第二种方式是在java代码里
MyReceiver myReceiver = new MyReceiver(); IntentFilter filter = new IntentFilter(); filter.addAction("android.intent.action.PHONE_STATE"); registerReceiver(myReceiver, filter);
另外需要加上权限控制:
<uses-permission android:name="android.permission.READ_PHONE_STATE"> </us