歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

Android入門:廣播接收者應用(電話攔截器)

一、電話攔截器應用說明

在我們輸入完電話號碼並撥打電話時,系統會發出一個有序廣播(action="Android.intent.action.NEW_OUTGOING_CALL"),並且預計會發送給電話撥號器應用的廣播接收者,但是我們可以設置一個優先級更高的攔截器廣播接收者(android:priority="1000"),使得在撥號器的廣播接收者收到電話之前將電話清空,如圖所示:

由於此應用應該比較隱蔽,因此需要開機自啟動,當開機自啟動時,系統會發出一個廣播,激活滿足條件的組件(action="android.intent.action.BOOT_COMPLETED");

二、代碼實現

AndroidManifest.xml

  1. <uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS"/>   <!-- 外界撥打權限 -->  
  2. <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>   <!-- 接收開機廣播 -->  
  3. <application  
  4.      android:icon="@drawable/ic_launcher"  
  5.      android:label="@string/app_name" >  
  6.      <receiver android:name=".PhoneBroadcastReceiver">  
  7.          <intent-filter android:priority="1000">  
  8.              <action android:name="android.intent.action.NEW_OUTGOING_CALL"/>  
  9.              <action android:name="android.intent.action.BOOT_COMPLETED"/>  
  10.          </intent-filter>  
  11.      </receiver>  
  12. </application>  

PhoneBroadcastReceiver.java

  1. package com.xiazdong.phonelistener;  
  2.   
  3. import android.content.BroadcastReceiver;  
  4. import android.content.Context;  
  5. import android.content.Intent;  
  6.   
  7. public class PhoneBroadcastReceiver extends BroadcastReceiver {  
  8.     @Override  
  9.     public void onReceive(Context context, Intent intent) {  
  10.         if("5556".equals(this.getResultData())) this.setResultData(null);   //如果電話是5556,則清空,不讓他撥打   
  11.     }  
  12. }  
Copyright © Linux教程網 All Rights Reserved