üzerinde boş imleç döndürür. Bu koda sahibim ve bir kaç cihazda test ettim, Samsung Galaxy S4'te çalışan Lollipop hariç. getContentResolver().query()
yöntemi, her seferinde boş bir imleç döndürür. if/else deyimi bundan dolayı, başka gider ve insert
çalışırsa ben insert
İçerik Çözümleyici sorgusu, yalnızca Samsung Galaxy S4 çalışan bir Lollipop
String mediaTitle = String.format("My Artist%s", title);
ContentValues values = new ContentValues();
values.put(MediaStore.MediaColumns.DATA, k.getAbsolutePath());
values.put(MediaStore.MediaColumns.TITLE, mediaTitle);
values.put(MediaStore.MediaColumns.SIZE, k.length());
values.put(MediaStore.MediaColumns.MIME_TYPE, "audio/ogg");
values.put(MediaStore.Audio.Media.ARTIST, "My Artist");
values.put(MediaStore.Audio.Media.IS_RINGTONE, false);
values.put(MediaStore.Audio.Media.IS_NOTIFICATION, true);
values.put(MediaStore.Audio.Media.IS_ALARM, false);
values.put(MediaStore.Audio.Media.IS_MUSIC, false);
Uri uri = MediaStore.Audio.Media.getContentUriForPath(k.getAbsolutePath());
String selection = String.format("%s = ?", MediaStore.MediaColumns.TITLE);
c = getContentResolver().query(uri, null, selection, new String[]{mediaTitle}, null); // RETURNS NULL only on Samsung Galaxy S4 with Lollipop
if (c.moveToFirst()) {
return uri.buildUpon().appendPath(String.valueOf(c.getInt(c.getColumnIndex(MediaStore.MediaColumns._ID)))).build();
} else {
return getContentResolver().insert(uri, values);
}
Muhtemelen 'getContentResolver(). Update (…' yerine kullanmalısınız) – Fhl