我可以通过点击按钮获取联系电话号码,然后将其转移到EditText,但我只想获得没有国家/地区代码的结果。例如:+33 xx xx xx xxx becomes xx xx xx xxx
有没有办法实现这个目标? 我用以下代码来获取数字并将其放在EditText中:
按钮点击:
Intent intent = new Intent(Intent.ACTION_PICK, Contacts.CONTENT_URI);
intent.setType(CommonDataKinds.Phone.CONTENT_TYPE);
startActivityForResult(intent, 1);
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if ((requestCode == 1) && (resultCode == RESULT_OK)) {
Cursor cursor = null;
try {
Uri uri = data.getData();
cursor = getContentResolver().query(uri, new String[] { CommonDataKinds.Phone.NUMBER }, null, null, null);
if (cursor != null && cursor.moveToNext()) {
String phone = cursor.getString(0);
editText.setText(phone);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
答案 0 :(得分:1)
使用Google的libphonenumber库。不要尝试创建自己的逻辑,因为格式因地而异。
答案 1 :(得分:0)
尝试使用replaceall。例如:
concat