攔截電話

廣播接受者創(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);
    }
}
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容