从联系人中提取号码但删除国家/地区代码

时间:2017-04-02 12:32:07

标签: android android-edittext number-formatting mobile-country-code

我可以通过点击按钮获取联系电话号码,然后将其转移到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();
        }
    }
}

2 个答案:

答案 0 :(得分:1)

使用Google的libphonenumber库。不要尝试创建自己的逻辑,因为格式因地而异。

答案 1 :(得分:0)

尝试使用replaceall。例如:     concat