gpt4 book ai didi

java - 获取包含国家代码的完整联系人电话号码,即使未输入国家代码

转载 作者:行者123 更新时间:2023-11-29 04:22:36 38 4
gpt4 key购买 nike

我正在开发一个具有登录 Activity 的应用程序,其中,当用户登录时,它会自动将联系人从他们的手机保存到服务器。这行得通,但我有一个问题,当我保存数字时,它们以用户在手机中输入的格式保存。例如,如果用户输入此号码:+15555555,它将像这样保存,但如果他输入时没有国家代码,它将看起来像这样:5555555,没有 +1,或任何其他国家代码,具体取决于国家/地区。

我想要的是返回我所有的联系人及其国家代码,即使是那些用户输入的没有国家代码的联系人。

有些应用比如Viber可以识别它的格式,所以如果它不是+1开头,或者05..开头,它会被识别并自动添加国家代码,这样05..就变成了+15...

public void updateContacts() {

String[] PROJECTION = new String[]{
ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME,
ContactsContract.CommonDataKinds.Phone.NUMBER
};

Cursor phones = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, PROJECTION, null, null, null);
HashMap<String, String> user = db.getUserDetails();
String userId = user.get("uid");

if (phones != null) {
while (phones.moveToNext()) {
if (phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER) != -1) {
final String phoneNumber = phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));

ApiInterface apiService = ApiClient.getClient().create(ApiInterface.class);

Call<ContactsResponse> call = apiService.contactExists(phoneNumber, userId);
call.enqueue(new Callback<ContactsResponse>() {
@Override
public void onResponse(Call<ContactsResponse> call, retrofit2.Response<ContactsResponse> response) {
Log.e(TAG, "abc");
}

@Override
public void onFailure(Call<ContactsResponse> call, Throwable t) {
Log.e(TAG, t.toString());
}
});
}
}
}

if (phones != null) {
phones.close();
}
}

我正在使用 libphonenumber,所以我想知道是否有办法使用它并获取国家代码,然后在没有它的情况下将其添加到号码中。

最佳答案

不可能。如果用户没有输入国家代码或地区代码,那么当调用该号码时,服务提供商将自动假定他们使用的是他们当前所在的国家代码/地区代码。如果您有 518-222-2345已保存并且您在美国调用此号码,服务提供商将在开头添加 +1。如果用户随后去英国旅行并尝试调用相同的号码 (contact-entry),服务提供商将在前面添加一个 +44 代码。长话短说,您看到的数据是存储在设备上的所有数据,当特定数据(国家/地区代码/地区代码)不存在时,服务提供商会假定它们当前所在的代码。

关于java - 获取包含国家代码的完整联系人电话号码,即使未输入国家代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48175704/

38 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com