您的位置:首页 > 移动开发 > Android开发

Android 跳转基础应用(联系人,日历)

2015-08-03 20:24 411 查看
在Android系统中,基础应用开放的接口大都在一些contract类中可以查到,比如联系人和日历的:

import android.provider.CalendarContract;
import android.provider.ContactsContract;


下面简单列举几个最近用过的,原理都一样,其他的场景可以举一反三:

根据contact_id跳转到联系人编辑页面

Uri uri = Uri.withAppendedPath(ContactsContract.Contacts.CONTENT_URI, String.valueOf(contact_id));
Intent intent = new Intent(Intent.ACTION_EDIT);
intent.setData(uri);
startActivityForResult(intent, type);

注意:
联系人表中有两个id:contact_id 和 raw_contact_id。
contact_id和raw_contact_id是一对多映射,不能混用,各自必须与各自对应的URI匹配使用,不然会错乱。

根据contact_id添加为常用联系人

Uri uri = Uri.withAppendedPath(ContactsContract.Contacts.CONTENT_URI, String.valueOf(item.id));
ContentValues values = new ContentValues();
values.put(ContactsContract.Contacts.STARRED, 1);
int i = context.getContentResolver().update(uri, values, null, null);


使用已有信息创建新联系人

Intent intent = new Intent(Intent.ACTION_INSERT);
intent.setData(ContactsContract.Contacts.CONTENT_URI);
intent.putExtra(ContactsContract.Intents.Insert.PHONE, "18688888888");
context.startActivityForResult(intent, type);
ContactsContract.Intents.Insert 类中除了PHONE以外还有其他一些常用类型可以添加

跳转到日历页面中添加新的事件

Intent intent = new Intent(Intent.ACTION_INSERT);
intent.setData(CalendarContract.Events.CONTENT_URI);
intent.putExtra(CalendarContract.Events.TITLE, "开会");
context.startActivityForResult(intent, type);
同理,CalendarContract类中也有很多内部类可以使用,在这里就不一一列举了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: