- 浏览: 178854 次
- 性别:
- 来自: 深圳
文章分类
添加联系人姓名、手机、头像。。。 java核心代码 package com.kaka.addContact; import java.io.ByteArrayOutputStream; import android.app.Activity; import android.content.ContentUris; import android.content.ContentValues; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.net.Uri; import android.os.Bundle; import android.provider.ContactsContract; import android.provider.ContactsContract.CommonDataKinds.Email; import android.provider.ContactsContract.CommonDataKinds.Im; import android.provider.ContactsContract.CommonDataKinds.Phone; import android.provider.ContactsContract.CommonDataKinds.Photo; import android.provider.ContactsContract.CommonDataKinds.StructuredName; import android.provider.ContactsContract.Contacts.Data; import android.provider.ContactsContract.RawContacts; public class Main extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); boolean result = insert("kaka", "110", "111@qq.com", "111"); System.out.println("insert result " + result); } public boolean insert(String given_name, String mobile_number, String work_email, String im_qq) { try { ContentValues values = new ContentValues(); // 下面的操作会根据RawContacts表中已有的rawContactId使用情况自动生成新联系人的rawContactId Uri rawContactUri = getContentResolver().insert( RawContacts.CONTENT_URI, values); long rawContactId = ContentUris.parseId(rawContactUri); // 向data表插入姓名数据 if (given_name != "") { values.clear(); values.put(Data.RAW_CONTACT_ID, rawContactId); values.put(Data.MIMETYPE, StructuredName.CONTENT_ITEM_TYPE); values.put(StructuredName.GIVEN_NAME, given_name); getContentResolver().insert(ContactsContract.Data.CONTENT_URI, values); } // 向data表插入电话数据 if (mobile_number != "") { values.clear(); values.put(Data.RAW_CONTACT_ID, rawContactId); values.put(Data.MIMETYPE, Phone.CONTENT_ITEM_TYPE); values.put(Phone.NUMBER, mobile_number); values.put(Phone.TYPE, Phone.TYPE_MOBILE); getContentResolver().insert(ContactsContract.Data.CONTENT_URI, values); } // 向data表插入Email数据 if (work_email != "") { values.clear(); values.put(Data.RAW_CONTACT_ID, rawContactId); values.put(Data.MIMETYPE, Email.CONTENT_ITEM_TYPE); values.put(Email.DATA, work_email); values.put(Email.TYPE, Email.TYPE_WORK); getContentResolver().insert(ContactsContract.Data.CONTENT_URI, values); } // 向data表插入QQ数据 if (im_qq != "") { values.clear(); values.put(Data.RAW_CONTACT_ID, rawContactId); values.put(Data.MIMETYPE, Im.CONTENT_ITEM_TYPE); values.put(Im.DATA, im_qq); values.put(Im.PROTOCOL, Im.PROTOCOL_QQ); getContentResolver().insert(ContactsContract.Data.CONTENT_URI, values); } // 向data表插入头像数据 Bitmap sourceBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.icon); final ByteArrayOutputStream os = new ByteArrayOutputStream(); // 将Bitmap压缩成PNG编码,质量为100%存储 sourceBitmap.compress(Bitmap.CompressFormat.PNG, 100, os); byte[] avatar = os.toByteArray(); values.put(Data.RAW_CONTACT_ID, rawContactId); values.put(Data.MIMETYPE, Photo.CONTENT_ITEM_TYPE); values.put(Photo.PHOTO, avatar); getContentResolver().insert(ContactsContract.Data.CONTENT_URI, values); } catch (Exception e) { return false; } return true; } }
Manifest中添加读写联系人数据权限 <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.kaka.addContact" android:versionCode="1" android:versionName="1.0"> <uses-sdk android:minSdkVersion="8" /> <application android:icon="@drawable/icon" android:label="@string/app_name"> <activity android:name=".Main" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> <uses-permission android:name="android.permission.READ_CONTACTS" /> <uses-permission android:name="android.permission.WRITE_CONTACTS" /> </manifest>
参考文章
http://daixj110.iteye.com/blog/1179278
http://www.devdiv.com/thread-61430-1-1.html
发表评论
-
跳转至Google Play,rate,more推广功能
2014-08-19 15:09 1127String appPackageName = getPac ... -
Activity 全透明属性
2014-07-02 15:10 572android:theme="@android:st ... -
android平台运行flash游戏
2014-03-31 19:20 857android平台运行flash游戏 http://blo ... -
遍历指定目录下的图片文件 显示在gridview
2014-03-05 12:49 822gridview布局 <?xml version=& ... -
Android桌面悬浮窗进阶,QQ手机管家小火箭效果实现
2014-01-06 15:11 1043http://blog.csdn.net/guolin_b ... -
android 透明效果
2013-06-28 17:25 917参考http://2960629.blog.51cto ... -
拦截Home键
2013-03-19 12:03 962主要就是重写 onAttachedTo ... -
不同应用间数据共享
2013-03-18 11:16 839Android不同应用之间数据的共享有许多方式,但是我觉得还是 ... -
root情况下静默安装
2012-12-17 11:12 855参考 http://blog.csdn.net/su1216/ ... -
app推广必备功能:分享到,更多应用,创建快捷方式
2012-12-14 13:14 1203public class ShareTool { ... -
获取屏幕上正在显示的activity
2012-12-08 17:19 1043参考文章http://chroya.iteye.com/blo ... -
android异步加载数据
2012-11-07 13:55 990参考http://blog.csdn.net/sfshine/ ... -
Activity去除标题栏和状态栏
2012-11-06 15:50 1390方法一:直接在xml文件里设置 //全屏(隐藏标题栏和状 ... -
无法清除的Notification,直到点击了才可以消除
2012-11-06 12:35 2227参考文章 http://www.cnblogs.com/new ... -
vpn
2012-10-30 17:17 705参考文章http://blog.csdn.net/whyonl ... -
开机启动Service
2012-10-25 14:58 871程序执行效果为: 开机后跳转到MainActivity并执行定 ... -
Android 定时执行任务
2012-10-25 13:28 1977本程序执行效果为: 隔3秒打印"收到广播" ... -
打开关闭移动数据、wifi、gps
2012-10-13 23:11 1027参考 http://blog.csdn.net/anzhu_1 ... -
联网自动开启Service
2012-10-12 10:13 954参考http://blog.csdn.net/lvron/ar ... -
从assets复制文件到sd卡
2012-09-28 21:34 2926参考文章 批量从assets复制文件到sd卡 http://l ...
相关推荐
在Android平台上,添加联系人是一项常见的任务,尤其对于开发者来说,理解如何操作联系人数据库是必要的。本教程将深入探讨如何通过编程方式在Android设备上添加联系人。 首先,我们需要了解Android系统的联系人...
3. **添加联系人**: 添加新联系人需要调用`ContentResolver.insert()`,传入`ContactsContract.RawContacts.CONTENT_URI`并创建一个` ContentValues`对象,填充必要的字段,如姓名、电话、电子邮件等。注意,...
Android 联系人数据库介绍及基本操作 Android 联系人数据库是 Android 操作系统中用于存储手机联系人的数据库。下面将对 Android 联系人数据库进行介绍,并对联系人的基本操作进行讲解。 一、联系人数据库 联系人...
该表保存了所有的手机测联系人,每个联系人占一行,该表保存了联系人的ContactID、联系次数、最后一次联系的时间、是否含有号码、是否被添加到收藏夹等信息。 2、raw_contacts表 该表保存了所有创建过的手机测...
集成到系统代码中,我们可以创建一个系统服务或者广播接收器,监听联系人变化事件,当有新的联系人添加或修改时,自动运行合并算法,实时保持联系人库的整洁。 此外,为了提高性能,可以采用异步处理,避免阻塞UI...
此项目中的界面可能包括列表视图(ListView)来显示联系人,以及用于编辑和添加联系人的活动(Activity)。 5. **权限管理**:在Android中,访问联系人数据需要在AndroidManifest.xml文件中声明相应的权限,例如`...
标题“安卓联系人数据库”暗示我们将探讨的是与安卓设备上的联系人存储相关的SQLite数据库。 `contacts.db`是这个话题的核心,它是一个SQLite数据库文件,存储了安卓用户的联系人信息。这些信息通常包括姓名、电话...
【Android联系人管理】是Android应用开发中的一个重要领域,它涉及到如何在Android设备上存储、检索、修改和删除联系人的信息。在这个项目中,你可能会遇到以下关键知识点: 1. **Android SDK**: 开发Android应用的...
这篇博客"Android 系统联系人操作"可能是探讨如何在Android应用中与系统联系人数据库进行交互,包括添加、删除、修改和查询联系人等操作。我们将深入探讨这些关键知识点。 1. **Android权限管理**: 在Android中,...
添加联系人时,通常需要先创建一个`ContentValues`对象,填充联系人的属性,如姓名、电话号码等,然后调用`ContentResolver`的`insert()`方法,传入`ContactsContract.RawContacts.CONTENT_URI`和`ContentValues`...
这通常涉及到读取Android的ContactsContract数据库,筛选出用户可能需要@的联系人信息,如姓名和唯一标识。 3. **显示联系人选择界面**:创建一个Dialog或者BottomSheet,展示联系人列表。列表项应包含联系人头像、...
在AndroidManifest.xml文件中,必须添加读取联系人数据的权限声明,这是由于Android系统的隐私保护机制。相应的权限声明如下: ```xml <uses-permission android:name="android.permission.READ_CONTACTS" /> ``...
主页面包含`对联系人信息增删改查`这四种功能:在添加联系人页面,输入联系人信息,若联系人在数据库中不存在则可以添加成功;在删除和修改用户页面,都可以通过姓名搜索到指定联系人的信息,然后对联系人进行删除...
在Android平台上,联系人模块是应用开发中的一个重要组成部分,它允许用户管理他们的个人联系信息,如姓名、电话号码、电子邮件地址等。对于初学者来说,理解并实现这一功能可以帮助他们更好地掌握Android应用开发的...
前情提要:Android 数据库(SQLite) 【简介、创建、使用(增删改查、事务、实战演练)、数据显示控件(ListView、Adapter、实战演练)】 ...采用 SQLite数据库 + ListView数据展示控件,可将用户添加的所有信息,分条展示出
首先,Android系统中的联系人数据存储在SQLite数据库中,开发者可以通过ContentProvider接口访问这些数据。ContactsContract类是Android提供的一个内容提供者(Content Provider),它为开发者提供了与系统联系人...
在联系人应用中,ContentProvider扮演了桥梁的角色,将系统的联系人数据库与我们的应用连接起来。以下将详细介绍如何通过ContentProvider进行联系人操作。 1. **联系人获取**:首先,我们需要获取到系统的联系人...
遍历联系人数据源(如SQLite数据库中的联系人表),根据输入的关键词筛选出匹配的联系人。 3. **更新视图**:筛选出匹配的联系人后,需要实时更新`ListView`或`RecyclerView`的数据集,并调用`notifyDataSetChanged...
在Android平台上,获取系统联系人和发送短信是两个常见的功能,常常被用于开发社交或通讯类应用程序。这个“Android 获取系统联系人并发送短信demo”应该是提供了一个示例代码,帮助开发者理解如何实现这两个功能。...
4. **事件处理**:通过监听按钮点击事件,触发相应功能,如添加联系人、删除联系人、查询联系人等。 5. **ContentResolver**:在Android中,ContentResolver是与内容提供者交互的接口,用于读写联系人数据。 实验...