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

在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类中也有很多内部类可以使用,在这里就不一一列举了。






你可能感兴趣的:(android,日历,跳转,联系人)