0

連絡先のすべての電話番号を取得しようとしています。カーソルで連絡先に関連付けられている番号を照会すると、すべての番号の重複が表示されます。詮索した後、これはリンクされたプロファイル(つまり、Googleプロファイルと電話連絡先プロファイル)が原因であると思います。数字を引き出すための私のコードは次のとおりです。

Cursor cursor = getContentResolver().query(
     Phone.CONTENT_URI, 
     new String[]{PhoneLookup.NUMBER},
     Phone.CONTACT_ID + "=?",
     new String[]{id}, null);
while(cursor.moveToNext()) {
     String phoneNumber = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
     Toast.makeText(getApplicationContext(), phoneNumber, Toast.LENGTH_LONG).show();
}
cursor.close();

このクエリを特定のプロファイルに制限する方法はありますか?前もって感謝します。私はしばらくこれを検索しましたが、解決策を見つけることができませんでした。

4

1 に答える 1

0

私は最近、似たようなことに苦労していました (例: group by 句の欠落)。 ContentProvider からのデータを一時テーブルに挿入し、結果をテーブルに照会することで回避できました。

つまり、ContentProvider の背後にあるデータはデータベースではない可能性があります。XML、JSON、FileSystemなどの可能性があります...したがって、これらにはGroup Byオプションがないため、除外されました。また、常に count(_id) が機能するとは限りません。

于 2011-03-16T07:08:44.107 に答える