2016-05-05 48 views
12

Ben Android'in Mediastore Dosyalar Veritabanı sorgu yapıyorum bazı dosyalar için boş bu değer var. MediaStore.MediaColumns.TITLE ile ilgili hiçbir doküman bulamadınız mı?Android Mediastore sorgu MediaStore.MediaColumns.TITLE sütun

Bu Bunlar gibi birkaç iç android dizinleri için gerçekleşir:

_data: /storage/emulated/0/Music, title: null, _display_name: null 
_data: /storage/emulated/0/Notifications, title: null, _display_name: null 
_data: /storage/emulated/0/Pictures, title: null, _display_name: null 

Ancak, bazı diğer klasörler için başlık vardır:

_data: /storage/emulated/0/Android, title: Android, _display_name: null 
_data: /storage/emulated/0/DCIM, title: DCIM, _display_name: null 
_data: /storage/emulated/0/Download, title: Download, _display_name: null 

Tüm veriler Mediastore doğrudan gelir sorgu.

Doğrudan Veri ile çalışabileceğimin farkındayım, ancak sorguyu TITLE'ye göre sıralamaya çalışıyorum, bu da bazılarının boş olduğundan hatalı sonuçlara yol açıyor.

Bu beklenen bir davranış? Bununla nasıl baş edip, tüm dosyaları doğru bir şekilde başlığa göre sıralarsınız?

+0

: http://stackoverflow.com/questions/8187828/sql-order-by -kullanıcı-sütun-içinde-özel-sütun-mümkün – dwbrito

+0

Boş başlık veya görünen adı alıyorsunuz? –

+0

@HirenPatel, null olduğunda, hem başlık hem de görünen ad için boştur. Sadece veri alanı doldurulur. – dwbrito

cevap

1

Bunun bir android sınırlaması olduğunu düşünüyor. Hep gibi bu bir düzen yapmak deneyebilirsiniz: Bu özyinelemeli olmadığını

select substr(
    substr(substr(MediaStore.MediaColumns.DATA, instr(MediaStore.MediaColumns.DATA, '/') + 1), instr(substr(MediaStore.MediaColumns.DATA, instr(MediaStore.MediaColumns.DATA, '/') + 1), '/') + 1), 
    instr(substr(substr(MediaStore.MediaColumns.DATA, instr(MediaStore.MediaColumns.DATA, '/') + 1), instr(substr(MediaStore.MediaColumns.DATA, instr(MediaStore.MediaColumns.DATA, '/') + 1), '/') + 1), '/') + 1 
    ) from tablename; 

Not, fakat sadece yukarı '/' ila 3 için çalışır.

Bu

yinelemeli yapılabilir ancak yalnızca Android'de sonradan tanıtıldı

bu şekilde gitmek gerekir merak ediyorum