2013-04-06 116 views
0

我剛剛構建了一個檢測來電的應用程序。我發現在某些手機(或不同版本的Android)中,來電號碼有國家代碼,有些來電號碼沒有。有沒有辦法使用國家代碼在任何Android手機和任何版本的Android中接聽來電?android撥入電話的國家代碼

我使用廣播接收器和PhoneStateListener,我得到onCallStateChanged incomingNumber的參數。所以,我沒有使用telephonymanager.EXTRA_PHONE_NUMBER(其實我不知道究竟是什麼呢EXTRA_PHONE_NUMBER)

回答

2

這裏做的是一個代碼片段,您可以在廣播接收器用於提取使用libphonenumber庫中的國家代碼。

@Override 
public void onReceive(Context context, Intent intent) { 
    if (intent.getAction().equals(Intent.ACTION_NEW_OUTGOING_CALL)) { 
    // get phone number from bundle 
    String phoneNumber = intent.getExtras().getString(Intent.EXTRA_PHONE_NUMBER); 

    // get country-code from the phoneNumber 
    PhoneNumberUtil phoneUtil = PhoneNumberUtil.getInstance(); 
    try { 
     PhoneNumber numberProto = phoneUtil.parse(phoneNumber, Locale.getDefault().getCountry()); 
     if (phoneUtil.isValidNumber(numberProto)) { 
      log.d("TAG", "Country Code: " + numberProto.getCountryCode()); 
     } else { 
      log.d("TAG", "Invalid number format: " + phoneNumber); 
     } 
    } catch (NumberParseException e) { 
     Log.d(TAG, "Unable to parse phoneNumber " + e.toString()); 
    } 
    } 
} 
相關問題