Android 实现获取双卡中的联系人

Android 获取联系人及其双卡联系人需要申请如下权限


接下来就是实现获取双卡联系人代码:

if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP){
    SubscriptionManager subscriptionManager = SubscriptionManager.from(mContext);
    List mSubcriptionInfos = subscriptionManager.getActiveSubscriptionInfoList();
    List subIds = new ArrayList<>();
    List slotIds = new ArrayList<>();
    if(mSubcriptionInfos != null){
        for(int i = 0 ; i < mSubcriptionInfos.size() ; i ++){
            SubscriptionInfo info = mSubcriptionInfos.get(i);
            if(info != null){
                subIds.add(info.getSubscriptionId() + "");
                slotIds.add((info.getSimSlotIndex() + 1) + "");
            }
            LogUtils.e(TAG , "info : " + info.toString());
        }
    }
    for(int i = 0 ; i < subIds.size() ; i ++){
        ContactSupport.getSimQuery(mContext , "content://icc/adn/subId/" + subIds.get(i) , slotIds.get(i));//这里就是获取双卡的联系人详情void
    }
}
public static void getSimQuery(Context mContext , String mUri , String soltID) {
    //SIM的provider是IccProvider,IccProvider的Uri是content://icc/adn
    LogUtils.e(TAG , "mUri : " + mUri);
    Cursor cursor = null;
    try {
        Uri uri = Uri.parse(mUri);
        cursor = mContext.getContentResolver().query(uri, null,
                null, null, null);
        if(cursor != null){
            while (cursor.moveToNext()) {
                String contactName = cursor.getString(cursor.getColumnIndex("name"));//获取双卡中联系人的名字
                String telNumber = cursor.getString(cursor.getColumnIndex("number"));//获取双卡中联系人的电话号码
                String contactSimID = soltID;//双卡中该联系人为与卡1还是卡2
                String keys[] = cursor.getColumnNames();
                LogUtils.e(TAG , "开始 ===========================================");
                for(String key : keys){
                    LogUtils.e(TAG , "key : " + key + " , value : " + cursor.getString(cursor.getColumnIndex(key)));
                }
                LogUtils.e(TAG , "结束 ===========================================");
            }
        }
    }catch (Exception e){
        e.printStackTrace();
    }finally {
        if(cursor != null){
            cursor.close();
        }
    }

}

以上就是获取双卡联系人的详细信息。

 

你可能感兴趣的:(通话功能)