建立一個廣播事件接收者,並在清單文件中註冊此文件,過濾意圖爲
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即爲來電號碼。