【问题标题】:SIM card contacts in ContactsContract.Data.CONTENT_URIContactsContract.Data.CONTENT_URI 中的 SIM 卡联系人
【发布时间】:2013-06-21 10:31:06
【问题描述】:

使用ContactsContract.Data.CONTENT_URI 可以从哪些来源获得数据。特别是,如果包括 SIM 卡联系人,我很感兴趣。

谢谢

【问题讨论】:

    标签: android android-contacts


    【解决方案1】:

    如果您想使用 SIM 卡中的所有联系人,请尝试以下代码:

    private void SIMContacts()
      {
        try
        {
            String strPhonename = null; 
            String strphoneNo = null;
    
        Uri simUri = Uri.parse("content://icc/adn"); 
        Cursor cursorSim = this.getContentResolver().query(simUri,null,null,null,null);
    
        while (cursorSim.moveToNext()) 
        {      
            strPhonename =cursorSim.getString(cursorSim.getColumnIndex("name"));
            strphoneNo = cursorSim.getString(cursorSim.getColumnIndex("number"));
            strphoneNo.replaceAll("\\D","");
            strphoneNo.replaceAll("&", "");
            strPhonename=strPhonename.replace("|","");
    
            Log.i("Contact: ", "name: "+strPhonename+" phone: "+strphoneNo);
        }        
    }
    catch(Exception e)
    {
        e.printStackTrace();
    }
    }
    

    【讨论】:

    • 这是否意味着来自 SIM 卡的联系人不包含在 ContactsContract.Data.CONTENT_URI 中?
    • 错了。模拟联系人包含在 ContactsContract.Data.CONTENT_URI 中。仅当用户选择从设备设置中隐藏 Sim 联系人时,它们才会隐藏
    • SIM 联系人的行为因设备而异,有些设备(如三星从联系人表中返回 SIM 联系人),而其他设备(如 Nexus 设备)则不然。
    • @Riser 这没关系,我理解,但我想知道设备是否有两个 SIM 卡,那么我将如何获取两个 SIM 卡 URI,以便我们可以获得两个 SIM 卡的联系人???
    猜你喜欢
    • 1970-01-01
    • 2011-10-02
    • 1970-01-01
    • 2012-06-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多