技术开发 频道

Android 开发总结之获取来电号码

  @Override

  public void onReceive(Context context, Intent intent) {

  Log.i(TAG, "WE ARE INSIDE!!!!!!!!!!!");

  TelephonyManager telephony = (TelephonyManager)context.getSystemService(Context.TELEPHONY_SERVICE);

  CustomPhoneStateListener customPhoneListener = new CustomPhoneStateListener();

  telephony.listen(customPhoneListener, PhoneStateListener.LISTEN_CALL_STATE);

  Bundle bundle = intent.getExtras();

  String phoneNr= bundle.getString("incoming_number");

  Log.i(TAG, "phoneNr: "+phoneNr);

  }

  }

  public class CustomBroadcastReceiver extends BroadcastReceiver {

  private static final String TAG = "CustomBroadcastReceiver";

  @Override

  public void onReceive(Context context, Intent intent) {

  Log.i(TAG, "WE ARE INSIDE!!!!!!!!!!!");

  TelephonyManager telephony = (TelephonyManager)context.getSystemService(Context.TELEPHONY_SERVICE);

  CustomPhoneStateListener customPhoneListener = new CustomPhoneStateListener();

  telephony.listen(customPhoneListener, PhoneStateListener.LISTEN_CALL_STATE);

  Bundle bundle = intent.getExtras();

  String phoneNr= bundle.getString("incoming_number");

  Log.i(TAG, "phoneNr: "+phoneNr);

  }

  }

  Java代码

  public class CustomPhoneStateListener extends PhoneStateListener {

  private static final String TAG = "CustomPhoneStateListener";

  @Override

  public void onCallStateChanged(int state, String incomingNumber){

  Log.v(TAG, "WE ARE INSIDE!!!!!!!!!!!");

  Log.v(TAG, incomingNumber);

  switch(state){

  case TelephonyManager.CALL_STATE_RINGING:

  Log.d(TAG, "RINGING");

  break;

  case TelephonyManager.CALL_STATE_IDLE:

  Log.d(TAG, "IDLE");

  break;

0
相关文章