Android 開發總結之獲取來電號碼

建立一個廣播事件接收者,並在清單文件中註冊此文件,過濾意圖爲 android.intent.action.PHONE_STATE
在intellij中由於未提示還覺得沒有這個,實際上是有的,增長權限 android.permission.READ_PHONE_STATE

   
   
   
   
<receiver android:name=".receiver.CallReceiver"> <intent-filter> <action android:name="android.intent.action.PHONE_STATE"/> </intent-filter> </receiver>
    
    
    
    
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>

在receiver中肯定 intent的action是電話狀態改變而且帶有的參數 改變後的狀態爲RINGRING,即電話響起時,獲取手機號碼


   
   
   
   
public class CallReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { if (TelephonyManager.ACTION_PHONE_STATE_CHANGED.equals(intent.getAction()) && "RINGING".equals(intent.getStringExtra(TelephonyManager.EXTRA_STATE))) { String number = intent.getStringExtra(TelephonyManager.EXTRA_INCOMING_NUMBER); } }}
此時獲取到的number即爲來電號碼。





















相關文章
相關標籤/搜索