廣播接受者創(chuàng)建
1創(chuàng)建廣播接收者(買了一臺收音機)
2 注冊廣播接收者
3 添加過濾器(添加頻道)
4 添加權(quán)限
1創(chuàng)建廣播接收者 2注冊廣播接收者
new -other -broadcastreceiver
添加廣播接收者名稱例如MyTelephoneReceiver
完成后會產(chǎn)生一個MyTelephoneReceiver的類,并且在AndroidMainifest文件中注冊。
MyTelephoneReceiver類
public class MyTelephoneReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
// TODO: This method is called when the BroadcastReceiver is receiving
//當(dāng)接收了廣播之后會調(diào)用該方法
}
}
AndroidMainifest.xml文件
<receiver
android:name=".MyTelephoneReceiver"
android:enabled="true"
android:exported="true">
</intent-filter>
</receiver>
3 添加過濾器 4 添加權(quán)限
想要接受外撥電話的系統(tǒng)廣播就要添加外撥電話的過濾器
在AndroidMainifest.xml文件中添加過濾器,并添加權(quán)限
<receiver
android:name=".MyTelephoneReceiver"
android:enabled="true"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.NEW_OUTGOING_CALL"/>
</intent-filter>
</receiver>
<uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS"/>
5 接收到廣播后,判斷號碼并攔截
在MyTelephoneReceiver類中添加代碼
public class MyTelephoneReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
// TODO: This method is called when the BroadcastReceiver is receiving
//當(dāng)接收了廣播之后會調(diào)用該方法
String number=getResultData();//獲取號碼
Log.i("mybroadcastreceiver","我監(jiān)聽到了有人向外撥打電話"+number);
if(number.equals("13312345678")){
setResultData(null);
}
}
}