Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 联系人API将联系人存储为不可见联系人:如何使其可见?_Android_Native_Contacts_Invisible - Fatal编程技术网

Android 联系人API将联系人存储为不可见联系人:如何使其可见?

Android 联系人API将联系人存储为不可见联系人:如何使其可见?,android,native,contacts,invisible,Android,Native,Contacts,Invisible,我正在尝试使用getContentResolver在Android中添加联系人。 首先,我创建了一个ArrayList: ArrayList<ContentProviderOperation> ops = new ArrayList<ContentProviderOperation>(); 最后在一个试块中 getContentResolver().applyBatch(ContactsContract.AUTHORITY, ops); 当我执行此操作时,我不会得

我正在尝试使用
getContentResolver
在Android中添加联系人。 首先,我创建了一个
ArrayList

ArrayList<ContentProviderOperation> ops =
  new ArrayList<ContentProviderOperation>();
最后在一个试块中

getContentResolver().applyBatch(ContactsContract.AUTHORITY, ops);
当我执行此操作时,我不会得到任何错误或异常。但是联系人不会出现在Android联系人中。当我检索不可见的联系人时,我可以找到此联系人。有人能找出哪里出了问题吗?

ArrayList op_list=new ArrayList();
 ArrayList<ContentProviderOperation> op_list = new ArrayList<ContentProviderOperation>();
 op_list.add(ContentProviderOperation.newInsert(ContactsContract.RawContacts.CONTENT_URI)
        .withValue(ContactsContract.RawContacts.ACCOUNT_TYPE, null)
        .withValue(ContactsContract.RawContacts.ACCOUNT_NAME, null)
      //.withValue(RawContacts.AGGREGATION_MODE, RawContacts.AGGREGATION_MODE_DEFAULT)
        .build()); 

     // first and last names
 op_list.add(ContentProviderOperation.newInsert(Data.CONTENT_URI)
        .withValueBackReference(Data.RAW_CONTACT_ID, 0)
        .withValue(Data.MIMETYPE, StructuredName.CONTENT_ITEM_TYPE)
        .withValue(StructuredName.GIVEN_NAME, name)
        .withValue(StructuredName.FAMILY_NAME, name)
        .build());

 op_list.add(ContentProviderOperation.newInsert(Data.CONTENT_URI)
        .withValueBackReference(Data.RAW_CONTACT_ID, 0)
        .withValue(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE)
        .withValue(ContactsContract.CommonDataKinds.Phone.NUMBER, phone)
        .withValue(ContactsContract.CommonDataKinds.Phone.TYPE,  Phone.TYPE_MOBILE)
        .build());

  op_list.add(ContentProviderOperation.newInsert(Data.CONTENT_URI)
         .withValueBackReference(Data.RAW_CONTACT_ID, 0)
       .withValue(ContactsContract.Data.MIMETYPE,ContactsContract.CommonDataKinds.Email.CONTENT_ITEM_TYPE)
         .withValue(ContactsContract.CommonDataKinds.Email.DATA, email)
         .withValue(ContactsContract.CommonDataKinds.Email.TYPE, ContactsContract.CommonDataKinds.Email.TYPE_WORK)
         .build());

try{
     ContentProviderResult[] results = getContentResolver().
                                 applyBatch(ContactsContract.AUTHORITY, op_list);
}catch(Exception e){
     e.printStackTrace();
} 
op_list.add(ContentProviderOperation.newInsert(ContactsContract.RawContacts.CONTENT_URI) .withValue(contacts contract.raw contacts.ACCOUNT_TYPE,null) .withValue(contacts contract.raw contacts.ACCOUNT\u NAME,null) //.withValue(RawContacts.AGGREGATION\u模式,RawContacts.AGGREGATION\u模式默认) .build()); //姓名 op_list.add(ContentProviderOperation.newInsert(Data.CONTENT_URI) .带ValueBackReference(Data.RAW\u CONTACT\u ID,0) .withValue(Data.MIMETYPE、StructuredName.CONTENT\u ITEM\u TYPE) .withValue(StructuredName.GIVEN_NAME,NAME) .withValue(StructuredName.FAMILY_NAME,NAME) .build()); op_list.add(ContentProviderOperation.newInsert(Data.CONTENT_URI) .带ValueBackReference(Data.RAW\u CONTACT\u ID,0) .withValue(contacts contract.Data.MIMETYPE、contacts contract.commondatatypes.Phone.CONTENT\u ITEM\u TYPE) .带值(contacts contract.commondatacates.Phone.NUMBER,Phone) .带值(contacts contract.commondatatypes.Phone.TYPE,Phone.TYPE\u MOBILE) .build()); op_list.add(ContentProviderOperation.newInsert(Data.CONTENT_URI) .带ValueBackReference(Data.RAW\u CONTACT\u ID,0) .withValue(ContactsContact.Data.MIMETYPE、ContactsContact.CommonDataTypes.Email.CONTENT\u ITEM\u TYPE) .withValue(contacts contract.commondatatypes.Email.DATA,Email) .withValue(contacts contract.commondatatypes.Email.TYPE,contacts contract.commondatatypes.Email.TYPE\u WORK) .build()); 试一试{ ContentProviderResult[]结果=getContentResolver()。 applyBatch(Contacts Contract.AUTHORITY,op_list); }捕获(例外e){ e、 printStackTrace(); }

这个代码有效

可能是个愚蠢的问题,但在电话设置中,你是否只显示带有号码的联系人。我想补充的另一件事是,有些电话允许你选择只显示属于某些谷歌群组(无论你设置哪个群组)的联系人。如果一个新的联系人不是其中一个小组的成员,你就不会见到他。检查你的GMail账户,看看联系人是否正确同步到了那里。伙计,你怎么这么讨厌。我不是想当个混蛋什么的。我只是对你得到的那件简单的事情感到好奇,你似乎对它感到不安。我说我没有答案。你说过让联系人可见与此无关。我误解了你在那里说的话,意思是没有办法做到这一点。毕竟没有愚蠢的问题,看看你怎么说没有明显的错误,当你的隐形联系人列表被检索出来时,我听起来像是对问题的简单解释。@Adhavan LOL我看到问题了@Terrance说他问你的问题可能会被认为是“愚蠢的”。他不是说你的问题是愚蠢的!他很谦虚,不是粗鲁。@威尔,@Terrance:对不起!我想我误解了!这不管用。null作为帐户类型和名称在某些电话上不起作用。要使每部电话都起作用,您需要有帐户类型和帐户名称。一种可能的方法是让用户选择要将联系人添加到哪个帐户。(将选项另存为资源并重新使用)我可以插入联系人。但是设置联系人铃声的问题。我如何才能做到这一点呢?很好的工作,只有这段代码在经过长时间的RND后才对我有效。
 ArrayList<ContentProviderOperation> op_list = new ArrayList<ContentProviderOperation>();
 op_list.add(ContentProviderOperation.newInsert(ContactsContract.RawContacts.CONTENT_URI)
        .withValue(ContactsContract.RawContacts.ACCOUNT_TYPE, null)
        .withValue(ContactsContract.RawContacts.ACCOUNT_NAME, null)
      //.withValue(RawContacts.AGGREGATION_MODE, RawContacts.AGGREGATION_MODE_DEFAULT)
        .build()); 

     // first and last names
 op_list.add(ContentProviderOperation.newInsert(Data.CONTENT_URI)
        .withValueBackReference(Data.RAW_CONTACT_ID, 0)
        .withValue(Data.MIMETYPE, StructuredName.CONTENT_ITEM_TYPE)
        .withValue(StructuredName.GIVEN_NAME, name)
        .withValue(StructuredName.FAMILY_NAME, name)
        .build());

 op_list.add(ContentProviderOperation.newInsert(Data.CONTENT_URI)
        .withValueBackReference(Data.RAW_CONTACT_ID, 0)
        .withValue(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE)
        .withValue(ContactsContract.CommonDataKinds.Phone.NUMBER, phone)
        .withValue(ContactsContract.CommonDataKinds.Phone.TYPE,  Phone.TYPE_MOBILE)
        .build());

  op_list.add(ContentProviderOperation.newInsert(Data.CONTENT_URI)
         .withValueBackReference(Data.RAW_CONTACT_ID, 0)
       .withValue(ContactsContract.Data.MIMETYPE,ContactsContract.CommonDataKinds.Email.CONTENT_ITEM_TYPE)
         .withValue(ContactsContract.CommonDataKinds.Email.DATA, email)
         .withValue(ContactsContract.CommonDataKinds.Email.TYPE, ContactsContract.CommonDataKinds.Email.TYPE_WORK)
         .build());

try{
     ContentProviderResult[] results = getContentResolver().
                                 applyBatch(ContactsContract.AUTHORITY, op_list);
}catch(Exception e){
     e.printStackTrace();
}