我遇到了一些问题,其中一些联系人包含国家/地区代码,而另一些则没有。从电话号码
我有用于获取正在保存在列表中的联系人号码的代码。名单如下:
[9999999999, 91-8888888888, 91-0000000000, 1111111111]
现在,我想从那些拥有它的数字去掉国家代码。我无法想出一个办法来检查这一点。
这里是我取的联系人代码:
ContentResolver cr = getApplicationContext().getContentResolver(); //Activity/Application android.content.Context
Cursor cursor = cr.query(ContactsContract.Contacts.CONTENT_URI, null, null, null, "UPPER(" + ContactsContract.Contacts.DISPLAY_NAME + ") ASC");
if(cursor.moveToFirst())
{
do
{
String id = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID));
if(Integer.parseInt(cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER))) > 0)
{
Cursor pCur = cr.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,null,ContactsContract.CommonDataKinds.Phone.CONTACT_ID +" = ?",new String[]{ id }, null);
while (pCur.moveToNext())
{
String contactName = pCur.getString(pCur.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME_PRIMARY));
String contactNumber = pCur.getString(pCur.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
allContacts.add(contactName);
contactNumber = contactNumber.replaceAll("\\s+","");
allnumbers.add(contactNumber);
break;
}
pCur.close();
}
} while (cursor.moveToNext()) ;
}
}
这里,allnumbers
包含数字(其中一些与他们的国家代码和别人不一样)。我怎样才能从拥有它的人那里删除国家代码?
任何帮助或关键字搜索将不胜感激,谢谢。
太少的信息。你的代码在哪里? – Seelenvirtuose
请检查编辑 –
删除国家/地区代码(如果文件中有多个代码)会使电话号码变得毫无意义。为没有的号码提供默认国家代码可能会更好。例如,在北美,假设+1。 –