1
私はAndroidの連絡先に取り組んでいます。特定のグループ名から電話番号(連絡先名ではない)を照会したいこれを行うにはどのようなクエリを実行する必要がありますか?特定のグループの電話番号を取得する方法
私はAndroidの連絡先に取り組んでいます。特定のグループ名から電話番号(連絡先名ではない)を照会したいこれを行うにはどのようなクエリを実行する必要がありますか?特定のグループの電話番号を取得する方法
カーソルをループしてデータを取得します。これは、contactIDとgroupIDとその他の情報を示すデータブロックを返します。これで、ContactsContract.Groupsを照会し、比較するグループに関するデータを取得します。
あなたはそうのような、次のカーソルにそれを追加することができますよりも、グループ行IDのグループ最初のクエリについての具体的なデータを探しているなら...
Cursor c = context.getContentResolver().query(ContactsContract.Data.CONTENT_URI
, null, ContactsContract.Data.MIMETYPE+"=? AND "+ ContactsContract.CommonDataKinds.GroupMembership.GROUP_ROW_ID+"=?"
, new String[]{ContactsContract.CommonDataKinds.GroupMembership.CONTENT_ITEM_TYPE, rowID }
, null);
は愚かな過ちのためにとても残念、ここでコードを書いた
あなたは答えのためにそう...
Cursor c = context.getContentResolver().query(ContactsContract.Groups.CONTENT_URI, new String[]{ContactsContract.Groups._ID}, ContactsContract.Groups.TITLE+"=?","myGroup", null);
おかげのようなグループIDを見つけることができます。私は上記のクエリを試して、私は正常にc.getString(c.getColumnIndex(Data.DISPLAY_NAME))を使用して、特定のグループの連絡先の名前を得た。しかし、c.getString(c.columnIndex(CommonDataKinds.Phone.NUMBER))を使用して電話番号を取得する際に同じことをしたとき、カーソルは電話番号ではなくグループ行IDを返すように見えました。それは変です... –
それは、電話番号が別のデータブロック/ mimetypeの下に格納されているため、グループと同じMIMEタイプで検索しようとしているようです。あなたは別のクエリを実行し、代わりにPhone.CONTENT_ITEM_TYPE mimetypeを検索する必要があります。または、1つのクエリを実行して、mimetypeが適切かどうかを確認して適切に処理する必要があります。これが混乱しているようであれば、非常に有益なので、このページhttp://developer.android.com/resources/articles/contacts.htmlを本当に読んでください。 – Maurycy