首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从安卓系统的PhoneBook获取联系人编号

从安卓系统的PhoneBook获取联系人编号
EN

Stack Overflow用户
提问于 2015-05-09 08:20:28
回答 2查看 611关注 0票数 0

我正在开发一个简单的应用程序,当我单击 EditText 时,电话联系人将打开,当用户选择联系人时,它将显示在EditText中。我已经这样做了,但问题是对于某些联系人,它显示的输出如下:

代码语言:javascript
复制
05-09 13:39:03.660: D/Actual No--->>>(953): 84 85 835654
05-09 13:39:03.660: D/phoneno(953): Tufan 85 835654
05-09 13:39:08.911: W/IInputConnectionWrapper(953): showStatusIcon on inactive InputConnection
05-09 13:39:15.428: D/Actual No--->>>(953): 08485835654
05-09 13:39:15.428: D/phoneno(953): Tufan8485835654
05-09 13:39:22.512: W/IInputConnectionWrapper(953): showStatusIcon on    inactive InputConnection
05-09 13:39:31.825: W/IInputConnectionWrapper(953): showStatusIcon on inactive InputConnection
05-09 13:39:42.468: W/IInputConnectionWrapper(953): showStatusIcon on inactive InputConnection
05-09 13:45:16.147: D/Actual No--->>>(953): +918485835654
05-09 13:45:16.147: D/phoneno(953): Tufan8485835654

所以,你可以看到一些接触,它给了我正确的结果。如何解决这个朋友?

检查我的java代码:

代码语言:javascript
复制
Uri contactData = data.getData();
Cursor c = managedQuery(contactData, null, null, null, null);
if (c.moveToFirst()) {
    String id = c.getString(c.getColumnIndexOrThrow(ContactsContract.Contacts._ID));

    String hasPhone = c.getString(c.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER));

    if (hasPhone.equalsIgnoreCase("1")) {
        Cursor phones = getContentResolver().query(
                ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,
                ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = " + id,
                null, null);
        phones.moveToFirst();
        String phn_no = phones.getString(phones.getColumnIndex("data1"));
        Log.d("Actual No--->>>", phn_no);
        int len = phn_no.length() % 10;
        String phn_no1 = phn_no.substring(len, phn_no.length());
        Log.d("phoneno", "Tufan" + phn_no1);
    }
}

我认为问题是在数字之间的空间,但这取决于用户如何节省。但作为一个程序员,我需要解决。如果有人知道,请帮帮我。

EN

回答 2

Stack Overflow用户

发布于 2015-05-09 08:42:57

获得联系电话号码的代码似乎没问题。

我想麻烦只是因为接触号的空间进来了。

你可以通过替换-

代码语言:javascript
复制
String phn_no = phones.getString(phones.getColumnIndex("data1"));

代码语言:javascript
复制
String phn_no = phones.getString(phones.getColumnIndex("data1")).trim().replace(" ","");

希望能帮上忙。祝好运。

票数 1
EN

Stack Overflow用户

发布于 2015-05-09 08:31:24

通过这段代码,这是正在运行的代码。

代码语言:javascript
复制
    Cursor phones = getContentResolver().query(
            ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, null,
            null, null);
    while (phones.moveToNext()) {
        String name = phones
                .getString(phones
                        .getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME));
        String phoneNumber = phones
                .getString(phones
                        .getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
        Toast.makeText(getApplicationContext(), name, Toast.LENGTH_LONG)
                .show();

        System.out.println(name + "==" + phoneNumber);

    }
    phones.close();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30137699

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档