android--(联系人提供者实践)
来源:互联网 发布:php手机论坛 编辑:程序博客网 时间:2024/06/03 19:28
/** * 添加联系人 */public class ContactsActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_contacts); } /** * 添加联系人 * @param view */ public void addClick(View view) { ContentResolver cr = this.getContentResolver(); //执行一个空值插入,目的是获取系统返回的rawContactId ContentValues values = new ContentValues(); Uri uri = cr.insert(ContactsContract.RawContacts.CONTENT_URI, values);//在contacts表中插入一行空列 long _id = ContentUris.parseId(uri);//获取插入的id //插入姓名数据 values.clear(); values.put(ContactsContract.Data.RAW_CONTACT_ID, _id);//在 data 表中插入id values.put(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.StructuredName.CONTENT_ITEM_TYPE); values.put(ContactsContract.CommonDataKinds.StructuredName.DISPLAY_NAME, "jack"); cr.insert(ContactsContract.Data.CONTENT_URI, values); //插入电话数据 values.clear(); values.put(ContactsContract.Data.RAW_CONTACT_ID, _id); values.put(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE); values.put(ContactsContract.CommonDataKinds.Phone.NUMBER, "00900"); values.put(ContactsContract.CommonDataKinds.Phone.TYPE, ContactsContract.CommonDataKinds.Phone.TYPE_MOBILE); cr.insert(ContactsContract.Data.CONTENT_URI, values); Toast.makeText(this, "记录已添加", Toast.LENGTH_LONG).show(); } /** * 删除联系人 * @param view */ public void deleteClick(View view) { ContentResolver cr = this.getContentResolver(); System.out.print(ContactsContract.Contacts.CONTENT_URI.toString() + "/3"); Uri uri = Uri.parse("content://com.android.contacts/contacts/3"); cr.delete(uri, null, null); Toast.makeText(this, "记录已删除", Toast.LENGTH_SHORT).show(); } /** * 更新联系人 * @param vied */ public void updateClick(View vied) { ContentResolver cr = this.getContentResolver(); ContentValues values = new ContentValues(); values.put(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE); values.put(ContactsContract.CommonDataKinds.Phone.NUMBER, "4445"); values.put(ContactsContract.CommonDataKinds.Phone.TYPE, ContactsContract.CommonDataKinds.Phone.TYPE_MOBILE); cr.update(ContactsContract.Data.CONTENT_URI, values, "_id=1", null); Toast.makeText(this, "_id=1的记录已更新", Toast.LENGTH_SHORT).show(); } //查询联系人 public void queryClick(View view) { //获取接口 ContentResolver contentResolver = this.getContentResolver(); String id = null; String mimeType = null; //只需要从Contacts中获取Id,其他的都可以不要,通过查看上面编译的SQL语句,可以看出将第二个参数 //设置为Null ,默认返回的列非常多,是一种资源浪费 //查询 contacts表 查询出 id号 Cursor cursor = contentResolver.query(ContactsContract.Contacts.CONTENT_URI, new String[]{ContactsContract.Contacts._ID}, null, null, null); while (cursor.moveToNext()) { id = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID)); //从一个cursor获取所有的信息 //查询 data表 查询 id, Cursor contactInfoCursor = contentResolver.query( ContactsContract.Data.CONTENT_URI, new String[]{ContactsContract.Data.CONTACT_ID,//查询联系人的id ContactsContract.Data.MIMETYPE,//类型 ContactsContract.Data.DATA1,//名字等信息 ContactsContract.Data.DATA15},//图片 ContactsContract.Data.CONTACT_ID + "=" + id, null, null); while (contactInfoCursor.moveToNext()) { mimeType = contactInfoCursor.getString( contactInfoCursor.getColumnIndex(ContactsContract.Data.MIMETYPE)); String value = contactInfoCursor.getString( contactInfoCursor.getColumnIndex(ContactsContract.Data.DATA1)); byte[] photo = contactInfoCursor.getBlob( contactInfoCursor.getColumnIndex(ContactsContract.Data.DATA15)); if (mimeType.contains("/name")) { System.out.print("姓名=" + value); } else if (mimeType.contains("/email")) { System.out.print("邮箱=" + value); } else if (mimeType.contains("/im")) { System.out.print("聊天QQ账号=" + value); } else if (mimeType.contains("/phone")) { System.out.print("电话=" + value); } else if (mimeType.contains("/postal")) { System.out.print("邮编=" + value); } else if (mimeType.contains("/photo")) { System.out.print("照片=" + photo);//图片使用ImageView来显示 } else if (mimeType.contains("/group")) { System.out.print("组=" + value); } else if (mimeType.contains("/postal-address_v2")) { System.out.print("地址=" + value); } } contactInfoCursor.close(); } cursor.close(); }}
0 0
- android--(联系人提供者实践)
- android:利用内容提供者操作联系人
- android 使用内容提供者获取手机联系人
- Android内容提供者(一)读取系统联系人
- android内容提供者contentProvider_查询联系人
- android内容提供者contentProvider_插入联系人
- android 使用内容提供者获取手机联系人
- Android内容提供者之读取联系人信息
- Android 内容提供者之读取联系人案例
- android中添加通过内容提供者添加联系人
- Android-内容提供者、ListView点击事件、观察者、监听短信/联系人
- Android读写联系人数据(内容提供者应用)
- Android基础笔记(十四)- 内容提供者读取联系人
- Android初级教程之内容提供者获取联系人信息
- Android根据内容提供者获得联系人信息实例
- Android 拿系统提供的内容提供者(联系人)demo
- Android ContentProvider(类容提供者)之操作通讯录联系人 添加查询联系人
- 内容提供者取得联系人信息
- LightOJ - 1025 The Specials Menu(区间DP)
- 定义注解接口
- Eclipse环境快速搭载
- Activity布局初步
- fs4412开发板学习笔记(三)
- android--(联系人提供者实践)
- Codeforces Round #327 (Div. 2)——C. Median Smoothing
- block
- inux集群系统包括集群节点
- javascript回调函数
- Android Eclipse 升级ADT到24.0.2完美解决方案
- 用户收藏夹
- xcode 经典错误
- Android问题之PopupWindow GridView onItemClick无效