Android 安卓系统中来电的国家/地区代码
我刚刚构建了一个检测来电的应用程序。我发现在一些手机(或不同版本的android)中,来电号码有国家代码,而有些来电号码没有。在任何安卓手机和任何版本的安卓系统中,有没有一种方法可以拨打带有国家代码的来电Android 安卓系统中来电的国家/地区代码,android,country-codes,Android,Country Codes,我刚刚构建了一个检测来电的应用程序。我发现在一些手机(或不同版本的android)中,来电号码有国家代码,而有些来电号码没有。在任何安卓手机和任何版本的安卓系统中,有没有一种方法可以拨打带有国家代码的来电 我使用广播接收器和PhoneStateListener,在onCallStateChanged上获得incomingNumber参数。所以我没有使用telephonymanager.EXTRA\u PHONE\u NUMBER(事实上我不知道EXTRA\u PHONE\u NUMBER的确切功
我使用广播接收器和PhoneStateListener,在onCallStateChanged上获得incomingNumber参数。所以我没有使用telephonymanager.EXTRA\u PHONE\u NUMBER(事实上我不知道EXTRA\u PHONE\u NUMBER的确切功能)
EXTRA\u PHONE\u NUMBER
保存用户输入的号码
包含最初在中输入的电话号码的字符串
动作\u新的\u传出的\u呼叫,或实际的呼叫号码
行动电话
通过
另外,您是否看到:?
EXTRA\u PHONE\u NUMBER
保存用户输入的号码
包含最初在中输入的电话号码的字符串
动作\u新的\u传出的\u呼叫,或实际的呼叫号码
行动电话
通过
另外,您看到了吗?您可以使用libphonenumber库完成此操作您可以使用libphonenumber库完成此操作这里是一个代码片段,您可以在您的广播接收器中使用它来使用libphonenumber库提取国家代码
下面是一个代码片段,您可以在BroadcastReceiver中使用它来使用libphonenumber库提取国家代码 如何使用:下载JAR文件并在android中使用如何使用:下载JAR文件并在android中使用
@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());
}
}
}