【问题标题】:Get ContactId at the time of inserting a new contact programmatically to phone in android在以编程方式将新联系人插入android中的电话时获取ContactId
【发布时间】:2016-10-11 06:34:40
【问题描述】:

我正在尝试以编程方式获取新添加的联系人的 contactId。联系人已成功添加并从 ContentProviderResult[] 获取 contactID 但我得到的 contactId 不是正确的。我也看过 thisthis 的回答,但 contactId 不是正确的。这是我的代码

 ArrayList<ContentProviderOperation> contentProviderOperation = new ArrayList<>();
      ......
      ......

ContentProviderResult[] results = getActivity().getContentResolver().applyBatch(ContactsContract.AUTHORITY, contentProviderOperation);
long contactId = ContentUris.parseId(results[0].uri);

我也试过下面的代码:

ContentProviderResult[] results = getActivity().getContentResolver().applyBatch(ContactsContract.AUTHORITY, contentProviderOperation);
            Uri myContactUri = results[0].uri;

            int lastSlash = myContactUri.toString().lastIndexOf("/");
            int length = myContactUri.toString().length();
            int contactID = Integer.parseInt((String) myContactUri.toString().subSequence(lastSlash+1, length));

但我得到的 contactId 不是正确的。如果我出错了,请纠正我。提前致谢。

【问题讨论】:

    标签: android android-contentprovider contacts


    【解决方案1】:

    经常工作后,我找到了一种通过以下代码找出正确contactId的方法:

    public static int getContactIDFromNumber(String contactNumber, Context context) {
            contactNumber = Uri.encode(contactNumber);
            int phoneContactID = new Random().nextInt();
            Cursor contactLookupCursor = context.getContentResolver().query(Uri.withAppendedPath(ContactsContract.PhoneLookup.CONTENT_FILTER_URI, contactNumber), new String[]{ContactsContract.PhoneLookup.DISPLAY_NAME, ContactsContract.PhoneLookup._ID}, null, null, null);
            while (contactLookupCursor.moveToNext()) {
                phoneContactID = contactLookupCursor.getInt(contactLookupCursor.getColumnIndexOrThrow(ContactsContract.PhoneLookup._ID));
            }
            contactLookupCursor.close();
    
            return phoneContactID;
        }
    

    传递存在于arrayList 中的新添加联系人的contactId。 我知道这不是找到联系人的正确方法。但它对我有用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-19
      • 2011-12-17
      • 2013-01-24
      • 2013-05-29
      • 1970-01-01
      • 2012-08-12
      相关资源
      最近更新 更多