1. 添加联系人姓名、手机、头像。。。
  2. java核心代码
  3. packagecom.kaka.addContact;
  4. importjava.io.ByteArrayOutputStream;
  5. importandroid.app.Activity;
  6. importandroid.content.ContentUris;
  7. importandroid.content.ContentValues;
  8. importandroid.graphics.Bitmap;
  9. importandroid.graphics.BitmapFactory;
  10. importandroid.net.Uri;
  11. importandroid.os.Bundle;
  12. importandroid.provider.ContactsContract;
  13. importandroid.provider.ContactsContract.CommonDataKinds.Email;
  14. importandroid.provider.ContactsContract.CommonDataKinds.Im;
  15. importandroid.provider.ContactsContract.CommonDataKinds.Phone;
  16. importandroid.provider.ContactsContract.CommonDataKinds.Photo;
  17. importandroid.provider.ContactsContract.CommonDataKinds.StructuredName;
  18. importandroid.provider.ContactsContract.Contacts.Data;
  19. importandroid.provider.ContactsContract.RawContacts;
  20. publicclassMainextendsActivity{
  21. /**Calledwhentheactivityisfirstcreated.*/
  22. @Override
  23. publicvoidonCreate(BundlesavedInstanceState){
  24. super.onCreate(savedInstanceState);
  25. setContentView(R.layout.main);
  26. booleanresult=insert("kaka","110","111@qq.com",
  27. "111");
  28. System.out.println("insertresult"+result);
  29. }
  30. publicbooleaninsert(Stringgiven_name,Stringmobile_number,
  31. Stringwork_email,Stringim_qq){
  32. try{
  33. ContentValuesvalues=newContentValues();
  34. //下面的操作会根据RawContacts表中已有的rawContactId使用情况自动生成新联系人的rawContactId
  35. UrirawContactUri=getContentResolver().insert(
  36. RawContacts.CONTENT_URI,values);
  37. longrawContactId=ContentUris.parseId(rawContactUri);
  38. //向data表插入姓名数据
  39. if(given_name!=""){
  40. values.clear();
  41. values.put(Data.RAW_CONTACT_ID,rawContactId);
  42. values.put(Data.MIMETYPE,StructuredName.CONTENT_ITEM_TYPE);
  43. values.put(StructuredName.GIVEN_NAME,given_name);
  44. getContentResolver().insert(ContactsContract.Data.CONTENT_URI,
  45. values);
  46. }
  47. //向data表插入电话数据
  48. if(mobile_number!=""){
  49. values.clear();
  50. values.put(Data.RAW_CONTACT_ID,rawContactId);
  51. values.put(Data.MIMETYPE,Phone.CONTENT_ITEM_TYPE);
  52. values.put(Phone.NUMBER,mobile_number);
  53. values.put(Phone.TYPE,Phone.TYPE_MOBILE);
  54. getContentResolver().insert(ContactsContract.Data.CONTENT_URI,
  55. values);
  56. }
  57. //向data表插入Email数据
  58. if(work_email!=""){
  59. values.clear();
  60. values.put(Data.RAW_CONTACT_ID,rawContactId);
  61. values.put(Data.MIMETYPE,Email.CONTENT_ITEM_TYPE);
  62. values.put(Email.DATA,work_email);
  63. values.put(Email.TYPE,Email.TYPE_WORK);
  64. getContentResolver().insert(ContactsContract.Data.CONTENT_URI,
  65. values);
  66. }
  67. //向data表插入QQ数据
  68. if(im_qq!=""){
  69. values.clear();
  70. values.put(Data.RAW_CONTACT_ID,rawContactId);
  71. values.put(Data.MIMETYPE,Im.CONTENT_ITEM_TYPE);
  72. values.put(Im.DATA,im_qq);
  73. values.put(Im.PROTOCOL,Im.PROTOCOL_QQ);
  74. getContentResolver().insert(ContactsContract.Data.CONTENT_URI,
  75. values);
  76. }
  77. //向data表插入头像数据
  78. BitmapsourceBitmap=BitmapFactory.decodeResource(getResources(),
  79. R.drawable.icon);
  80. finalByteArrayOutputStreamos=newByteArrayOutputStream();
  81. //将Bitmap压缩成PNG编码,质量为100%存储
  82. sourceBitmap.compress(Bitmap.CompressFormat.PNG,100,os);
  83. byte[]avatar=os.toByteArray();
  84. values.put(Data.RAW_CONTACT_ID,rawContactId);
  85. values.put(Data.MIMETYPE,Photo.CONTENT_ITEM_TYPE);
  86. values.put(Photo.PHOTO,avatar);
  87. getContentResolver().insert(ContactsContract.Data.CONTENT_URI,
  88. values);
  89. }
  90. catch(Exceptione){
  91. returnfalse;
  92. }
  93. returntrue;
  94. }
  95. }

Java代码
  1. Manifest中添加读写联系人数据权限
  2. <?xmlversion="1.0"encoding="utf-8"?>
  3. <manifestxmlns:android="http://schemas.android.com/apk/res/android"
  4. package="com.kaka.addContact"
  5. android:versionCode="1"
  6. android:versionName="1.0">
  7. <uses-sdkandroid:minSdkVersion="8"/>
  8. <applicationandroid:icon="@drawable/icon"android:label="@string/app_name">
  9. <activityandroid:name=".Main"
  10. android:label="@string/app_name">
  11. <intent-filter>
  12. <actionandroid:name="android.intent.action.MAIN"/>
  13. <categoryandroid:name="android.intent.category.LAUNCHER"/>
  14. </intent-filter>
  15. </activity>
  16. </application>
  17. <uses-permissionandroid:name="android.permission.READ_CONTACTS"/>
  18. <uses-permissionandroid:name="android.permission.WRITE_CONTACTS"/>
  19. </manifest>

更多相关文章

  1. mybatisplus的坑 insert标签insert into select无参数问题的解决
  2. python起点网月票榜字体反爬案例
  3. 《Android开发从零开始》——25.数据存储(4)
  4. Android系统配置数据库注释(settings.db)
  5. Android中不同应用间实现SharedPreferences数据共享
  6. android图表ichartjs
  7. Android内容提供者源码
  8. Android开发者实用代码片段 与大家分享
  9. android SharedPreferences

随机推荐

  1. 详谈pg逻辑复制系列之逻辑复制的搭建(二)
  2. 机器人的眼睛,需要一个Spartan-6 FPGA
  3. 数据驱动的京东精细化消费者运营平台
  4. Opal Kelly公司推出面向FPGA模块的SYZYGY
  5. 移动商城首页的页眉和页脚的布局和flex项
  6. 第三课 选择器、模块化组件、伪类选择
  7. CSS盒模型以及CSS定位
  8. flex项目属性,实战案例。
  9. oracle 还原点(restore point)
  10. 数字孪生城市“大脑”的技术融合与发展Th