7

Android の連絡先データベースを拡張することは可能でしょうか?

ここから - http://d.android.com/reference/android/provider/ContactsContract.html

それは言います:

ContactsContract は、連絡先関連情報の拡張可能なデータベースを定義します

Extensible は、連絡先アプリケーションに、名前、番号、電子メール、勤務先番号、自宅番号などの通常の値以外のデータを追加できることを示唆しています。

ただし、このページの例 - http://d.android.com/reference/android/provider/ContactsContract.RawContacts.htmlは、連絡先に新しいフィールドを追加する方法ではなく、名前などの標準値を挿入する方法のみを示しています。

さらに、Web で検索しても、連絡先データの拡張に関する情報はあまり見つかりません。

それで、私はそれが可能であるか、または拡張可能が連絡先の他の部分を参照しているのか疑問に思っていましたか?

たとえば、アプリ内で特別な権限を持つ連絡先の追加フィールドを追加して、ユーザーが連絡先を見ると、どのユーザーとアプリを使用できるかがわかるようにしたいと考えています。

これは可能ですか?

4

1 に答える 1

2

連絡先データベースにカスタム データを保存できます。ただし、組み込みの Android 連絡先を使用しているときに挿入したカスタム データをユーザーが見ることができると考えている場合、「ユーザーが連絡先を見ると、自分のアプリを使用できるユーザーを知っている」ということは不可能な場合があります。応用。独自のアプリケーションでカスタム データを表示する必要があります。

ContactsContract.Dataクラスの javadoc には、連絡先の記事と同様に説明が記載されています。

これを使用するには、 RawContactsを照会して生の連絡先 ID を取得する必要があります。

ここに、始めるのに役立ついくつかのサンプルコードがあります...

private void makePowerful(int rawContactId) {
    ContentValues values = new ContentValues();
    values.put(Privilege.RAW_CONTACT_ID, rawContactId);
    values.put(Privilege.MIMETYPE, Privilege.CONTENT_ITEM_TYPE);
    values.put(Privilege.PRIVILEGE_LEVEL, Privilege.TYPE_POWERFUL);
    Uri uri = getContentResolver().insert(Data.CONTENT_URI, values);
}

public static final class Privilege implements ContactsContract.DataColumnsWithJoins, ContactsContract.CommonDataKinds.CommonColumns {
    public static final String CONTENT_ITEM_TYPE = ContentResolver.CURSOR_ITEM_BASE_TYPE + "/my_app_privilege";
    public static final int TYPE_POWERFUL = 1;
    public static final int TYPE_WEAK = 2;
    public static final String PRIVILEGE_LEVEL = DATA1;

    private Privilege() { }
}
于 2011-01-23T06:44:40.697 に答える