在android中向联系人添加自定义MIME类型

在android中向联系人添加自定义MIME类型,第1张

概述我正在尝试编写一个为用户存储数据的应用程序 他选择的每个联系人. 我想向每个用户添加一个自定义提供者(如Facebook所做) 在新闻界将打开我的应用程序,并允许用户查看存储的数据. 我已经创建了一个自定义提供程序遵循本指南: http://www.c99.org/2010/01/23/writing-an-android-sync-provider-part-2/ 但自定义提供程序不会显示在我的 我正在尝试编写一个为用户存储数据的应用程序
他选择的每个联系人.
我想向每个用户添加一个自定义提供者(如Facebook所做)
在新闻界将打开我的应用程序,并允许用户查看存储的数据.
我已经创建了一个自定义提供程序遵循本指南:
http://www.c99.org/2010/01/23/writing-an-android-sync-provider-part-2/

但自定义提供程序不会显示在我的联系人列表中,
我已经尝试将我的MIME_TYPE更改为vnd.com.Google.cursor.item / contact_user_defined_fIEld
这没有帮助(当使用第三方应用程序,它显示我的提供商,但没有我的图标)

我的联系定义是这样的:

<ContactsSource xmlns:androID="http://schemas.androID.com/apk/res/androID"> <ContactsDataKind  androID:icon="@drawable/ic_launcher"  androID:mimeType="vnd.androID.cursor.item/vnd.MyPackagename.profile"  androID:summaryColumn="data2"  androID:detailColumn="data3"  androID:detailSocialSummary="true" /></ContactsSource>

我的相关代码是:

String MIME_TYPE  "vnd.androID.cursor.item/vnd.MyPackagename.profile";ArrayList<ContentProvIDerOperation> ops = new ArrayList<ContentProvIDerOperation>();int rawContactInsertIndex =ops.size();//(int)Contact_RAW_ID;ops.add(ContentProvIDerOperation.newInsert(RawContacts.CONTENT_URI)   .withValue(RawContacts.ACCOUNT_TYPE,null)   .withValue(RawContacts.ACCOUNT_name,null )   .build());ops.add(ContentProvIDerOperation.newInsert(ContactsContract.Data.CONTENT_URI)   .withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID,0)   .withValue(Data.MIMETYPE,Phone.CONTENT_ITEM_TYPE)   .withValue(Phone.NUMBER,"9X-XXXXXXXXX")   .build());ops.add(ContentProvIDerOperation.newInsert(Data.CONTENT_URI)   .withValueBackReference(Data.RAW_CONTACT_ID,Structuredname.CONTENT_ITEM_TYPE)   .withValue(Structuredname.disPLAY_name,"John Doe")   .build());  ops.add(ContentProvIDerOperation.newInsert(Data.CONTENT_URI)   .withValueBackReference(Data.RAW_CONTACT_ID,Email.CONTENT_ITEM_TYPE)   .withValue(Email.ADDRESS,"John Doe")   .build());ops.add(ContentProvIDerOperation.newInsert(Data.CONTENT_URI)   .withValueBackReference(Data.RAW_CONTACT_ID,"1234567890")   .build());ops.add(ContentProvIDerOperation.newInsert(Data.CONTENT_URI)    .withValueBackReference(Data.RAW_CONTACT_ID,0)    .withValue(Data.MIMETYPE,MIME_TYPE)    .withValue(Data.DATA1,"Custom FIEld")    .withValue(Data.DATA2,"Custom FIEld @R_403_5548@")    .withValue(Data.DATA3,"Custom FIEld Body")    .build());ContentProvIDerResult[] res = CallerActivity.getContentResolver().applyBatch       (ContactsContract.AUTHORITY,ops);

编辑(06/01/2013):
设法解决它,
如果您想让您的联系人可见,请确保提供给您的帐户名称
是联系人的帐户名称.

现在我有一个不同的问题,在4.0设备中,联系人变得彼此重复
我尝试手动聚合,但在某些设备中它的工作原理,有些则不做.

解决方法 这个要求的最佳例子 https://github.com/nemezis/SampleContacts 总结

以上是内存溢出为你收集整理的在android中向联系人添加自定义MIME类型全部内容,希望文章能够帮你解决在android中向联系人添加自定义MIME类型所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1132542.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存