0
私はこの関数を持っています。これはアルバムのリストを与えるはずですが、buck_display_name(s)でも繰り返し値を返しています。私は多くのことを検索しましたが、任意の助けを見つけることができませんでした:contentResolverがMediaProviderから別のデータを返さない
String[] projection = {"Distinct "+MediaStore.Images.Media.BUCKET_ID,
MediaStore.Images.Media._ID,
MediaStore.Images.Media.DATA,
MediaStore.Images.Media.BUCKET_DISPLAY_NAME
};
cursor = getContentResolver().query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,projection,null,null,"bucket_display_name ASC");
Log.i("ResultCount",String.valueOf(cursor.getCount()));
int i=0;
_ALBUM_IDs = new ArrayList<>();
URIs = new ArrayList<>();
_IDs = new ArrayList<>();
_ALBUM_NAMES = new ArrayList<>();
while (cursor.moveToNext()){
Log.i("Row",String.valueOf(i));
for (int j=0;j<cursor.getColumnCount();j++){
Log.i("Column "+j,cursor.getColumnNames()[j]+", value: "+cursor.getString(j));
}
_ALBUM_IDs.add(cursor.getString(0));
_IDs.add(cursor.getString(1));
URIs.add(cursor.getString(2));
_ALBUM_NAMES.add(cursor.getString(3));
i++;
}
ネストされたループからの出力:あなたはbucket_id、bucket_display_nameの繰り返される値がある見ることができます
I/ResultCount: 6
I/Row: 0
I/Column 0: bucket_id, value: -2075821635
I/Column 1: _id, value: 43
I/Column 2: _data, value: /storage/emulated/0/DCIM/DSC_0339.jpg
I/Column 3: bucket_display_name, value: DCIM
I/Row: 1
I/Column 0: bucket_id, value: -2075821635
I/Column 1: _id, value: 44
I/Column 2: _data, value: /storage/emulated/0/DCIM/DSC_0934.jpg
I/Column 3: bucket_display_name, value: DCIM
I/Row: 2
I/Column 0: bucket_id, value: -2075821635
I/Column 1: _id, value: 45
I/Column 2: _data, value: /storage/emulated/0/DCIM/DSC_2057m.jpg
I/Column 3: bucket_display_name, value: DCIM
I/Row: 3
I/Column 0: bucket_id, value: -2075821635
I/Column 1: _id, value: 46
I/Column 2: _data, value: /storage/emulated/0/DCIM/DSC_2132.jpg
I/Column 3: bucket_display_name, value: DCIM
I/Row: 4
I/Column 0: bucket_id, value: -2075821635
I/Column 1: _id, value: 47
I/Column 2: _data, value: /storage/emulated/0/DCIM/DSC_4258.jpg
I/Column 3: bucket_display_name, value: DCIM
I/Row: 5
I/Column 0: bucket_id, value: 902704159
I/Column 1: _id, value: 63
I/Column 2: _data, value: /storage/emulated/0/DataSync/DSC_0249.jpg
I/Column 3: bucket_display_name, value: DataSync
。どうしてこれなの?ありがとうございました。
'_id'は明らかに区別されます。なぜなら、この列はおそらく何らかの種類のPRIMARY KEYです。とにかくお返事いただきありがとうございます。GROUP BY –
について実際に私はハッシュセットを使用して手動で結果をフィルタリングしましたが、性能面でより良い結果が得られるため、結果をデータベースから取り出すことを望みました。 –