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が2つあります: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クラスにも内部クラスが多く用いられているが,ここでは一つ一つ列挙しない.