Я работаю над приложением, в котором есть активность входа в систему, в которой, когда пользователь входит в систему, он автоматически сохраняет контакты со своего телефона на сервер. Это работает, но у меня есть одна проблема: когда я сохраняю номера, они сохраняются в формате, который пользователь ввел в свой телефон. Например, если пользователь ввел этот номер: +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, поэтому мне было интересно, есть ли способ использовать это и получить код страны, а затем добавить его к номеру без него.