一、 目标
利用BroadcastReceive获取去电广播,并获取去电号码,再查询数据库获取归属信息;
二、代码实现:
1、在广播包(receiver)下新建一个类(取名OutCallReceiver)继承BroadcastReceive;
2、在清单文件中注册,意图过滤器(inter-filter)中监听的动作为去电(NEW_OUTGOING_CALL)
广播接受者注册代码:
1 <receiver android:name="com.example.mobilesafe.receiver.OutCallReceiver"> 2 <intent-filter > 3 <action android:name="android.intent.action.NEW_OUTGOING_CALL"/> 4 </intent-filter> 5 </receiver>
3、增加监听去电的权限(PROCESS_OUTGOING_CALLS)
4、在1中新建的类(OutCallReceiver)中,通过getResultData()方法获取String类型的去电号码(取名outCallNumb);
5、通过自定义的号码归属地查询工具类(NumberAddQueryUtils)中的查询方法queryNumber(String number)将4中获取的号码传入,返回String类型的归属地信息,最后通过Toast显示出来即可
新建类(OutCallReceiver)代码:
1 public class OutCallReceiver extends BroadcastReceiver { 2 3 @Override 4 public void onReceive(Context context, Intent intent) { 5 //获取去电号码 6 String outCallNumb = getResultData(); 7 //查询数据库 8 String outCallAdd = NumberAddQueryUtils.queryNumber(outCallNumb); 9 Toast.makeText(context, outCallAdd, 1).show(); 10 } 11 }
时间: 2024-10-24 08:40:31