2016-05-05 11 views
12

मैं Android के Mediastore फ़ाइलें डाटाबेस पर एक प्रश्न बना रही हूँ - MediaStore.Files.getContentUri("external") -, और, कुछ विशिष्ट फ़ोल्डरों के लिए दोनों MediaStore.MediaColumns.TITLE और MediaStore.MediaColumns.DISPLAY_NAME जबकि अन्य फ़ोल्डरों के लिए रिक्त हैं यह मान मौजूद है। मुझे MediaStore.MediaColumns.TITLE संभवतः शून्य होने के बारे में कोई दस्तावेज नहीं मिला।एंड्रॉयड Mediastore क्वेरी MediaStore.MediaColumns.TITLE स्तंभ कुछ फ़ाइलों के लिए रिक्त है

यह इस तरह के कुछ आंतरिक एंड्रॉयड निर्देशिका, के लिए होता है:

_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 

हालांकि, कुछ अन्य फ़ोल्डरों के लिए, शीर्षक है:

_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 

सभी डेटा Mediastore से सीधे आता है क्वेरी।

मुझे पता है कि मैं सीधे डेटा के साथ काम कर सकता हूं लेकिन मैं क्वेरी को TITLE के अनुसार सॉर्ट करने का प्रयास कर रहा हूं, जिससे गलत परिणाम सामने आते हैं कि कुछ शून्य हैं।

क्या यह एक अपेक्षित व्यवहार है? इसके साथ कैसे निपटें और शीर्षक से सही ढंग से क्रमबद्ध सभी फ़ाइलों को पुनर्प्राप्त करें?

+0

अगर यह होना चाहिए जिस तरह से करने के लिए जाना मैं सोच रहा हूँ: http://stackoverflow.com/questions/8187828/sql-order-by -using-a-substring-in-a-specific-column-possible – dwbrito

+0

आपको शून्य शीर्षक या प्रदर्शन नाम मिल रहा है? –

+0

@HirenPatel जब यह शून्य है, यह शीर्षक और प्रदर्शन नाम दोनों के लिए शून्य है। केवल डेटा फ़ील्ड भर गया है। – dwbrito

उत्तर

1

ऐसा लगता है कि यह एक एंड्रॉइड सीमा है। तुम हमेशा इस तरह के रूप में से एक आदेश करने की कोशिश कर सकता है: कि इस पुनरावर्ती नहीं है

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; 

ध्यान दें, लेकिन केवल 3 '/' के लिए काम करता है।

यह रिकर्सिवली किया जा सकता है लेकिन यह केवल Android पर बाद में शुरू की गई थी

संबंधित मुद्दे