繁体   English   中英

如何分别阅读android sim联系人和手机联系人

[英]How to read android sim contacts and phone contacts separately

我想在Android中分别阅读所有SIM卡联系人和手机通讯录。 我搜索了这个,发现很多人对此有问题,我找不到任何解决方案。 我喜欢这里的答案,但它对我不起作用。 当我测试它时,它给我谷歌联系人:

RawContacts.ACCOUNT_TYPE + " = 'com.google' "

但是,当我测试它时,它不会给我sim联系人:

RawContacts.ACCOUNT_TYPE + " = 'com.android.contacts.sim' "

然后我发现RawContacts是由同步适配器在这里创建的联系人。 这可能是问题所在。 所以任何人都可以告诉我获得的方式

  • 所有simcontacts
  • 所有手机通讯录

谢谢。

电话联系人

try
{
    String[] PROJECTION=new String[] {Contacts._ID,
        Contacts.DISPLAY_NAME,
        Phone.NUMBER
    };

    Cursor c=managedQuery(Phone.CONTENT_URI,
        PROJECTION, null, null, null);
        if (c.moveToFirst()) {
            String ClsPhonename = null;
            String ClsphoneNo = null;

            do 
            {
                ClsPhonename = c.getString(c.getColumnIndex(Contacts.DISPLAY_NAME));
                ClsphoneNo = c.getString(c.getColumnIndex(Phone.NUMBER));


                ClsphoneNo.replaceAll("\\D", "");
                ClsPhonename=ClsPhonename.replaceAll("&", "");
                ClsPhonename.replace("|","");
                String ClsPhoneName=ClsPhonename.replace("|","");

                }   

            } while(c.moveToNext());
        }

用于SIM卡联系人

String ClsSimPhonename = null; String ClsSimphoneNo = null;

    Uri simUri = Uri.parse("content://icc/adn"); 
    Cursor cursorSim = this.getContentResolver().query(simUri,null,null,null,null);

    while (cursorSim.moveToNext()) 
    {      
        ClsSimPhonename =cursorSim.getString(cursorSim.getColumnIndex("name"));
        ClsSimphoneNo = cursorSim.getString(cursorSim.getColumnIndex("number"));
        ClsSimphoneNo.replaceAll("\\D","");
        ClsSimphoneNo.replaceAll("&", "");
        ClsSimPhonename=ClsSimPhonename.replace("|","");
            System.out.println("SimContacts"+ClsSimPhonename);
            System.out.println("SimContactsNo"+ClsSimphoneNo);
            dts.createDatabse("MyCellFamily",getApplicationContext());

    }        
}
catch(Exception e)
{
    e.printStackTrace();
}

我发现许多手机在RawContacts.ACCOUNT_TYPE使用"com.android.contacts.sim"进行SIM卡联系。 但我也发现HTC使用“com.anddroid.contacts.sim”(android 拼写错误 )。 这很奇怪。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM