グローバル アドレス帳 (企業アカウント) から電話番号を選択しようとしています。ユーザーにログイン資格情報の入力を求めたくないので、ネイティブ ピッカー/API を使用したいと考えています。ContactsContract.Directory API に出会いました。ただし、使用方法のサンプルは見つかりませんでした。私は試した:
private static final String[] PEOPLE_PROJECTION = new String[] {
ContactsContract.Directory._ID,
ContactsContract.Directory.DISPLAY_NAME,
};
StringBuilder buffer = null;
String[] args = null;
if (constraint != null) {
buffer = new StringBuilder();
buffer.append("UPPER(");
buffer.append(Phone.DISPLAY_NAME);
buffer.append(") GLOB ?");
args = new String[] { constraint.toString().toUpperCase() + "*" };
}
Cursor c = getContentResolver().query(ContactsContract.Directory.CONTENT_URI, PEOPLE_PROJECTION, buffer == null ? null : buffer.toString(), args, null);
ただし、c は常に null を返します。電話番号を取得する方法がまだわからないため、ここでは DISPLAY_NAME のみを取得しようとしています。ご協力いただきありがとうございます。