मैं संगीत चलाने के लिए एक छोटा ऐप लिख रहा हूं। मेरा लक्ष्य एंड्रॉइड एपीआई स्तर 7 और ऊपर है।क्या एंड्रॉइड के मीडिया मेटा एसक्लाइट डेटाबेस पर कच्ची क्वेरी करना संभव है?
ऐप केवल उस संगीत को सूचीबद्ध और प्ले करना चाहिए जिसे उपयोगकर्ता द्वारा प्राथमिकताओं के माध्यम से चुने गए शैलियों के विशिष्ट सेट के साथ टैग किया गया है, उदा। "पॉप", "रॉक", "हिलबिली"।
अभी मैं सभी एल्बम आईडी और एल्बम नामों को खोजने का एक प्रभावी तरीका खोजने की कोशिश कर रहा हूं जिसमें चयनित शैलियों के साथ टैग किए गए ट्रैक शामिल हैं।
यह एसक्यूएल में आसान है। फोन एक एसक्लाइट डेटाबेस में मीडिया मेटा डेटा स्टोर करता है। मैंने इसे फोन की आंतरिक मेमोरी पर पाया है, इसे एडीबी के माध्यम से कॉपी किया है और इस पर कुछ स्क्लाइट प्रश्नों की कोशिश की है। परिणामस्वरूप क्वेरी एक एसक्यूएल वन-लाइनर है जो जुड़ने की श्रृंखला के साथ है और यह ठीक काम करता है।
यह एपीआई स्तर 7 और ऊपर के साथ, एंड्रॉइड एसडीके के साथ जावा में अधिक कठिन लगता है। मैं MediaStore पर प्रबंधित अंतर्निहित डेटाबेस पर कुछ सीमित SQL वाक्यविन्यास करने के लिए प्रबंधित कर सकता हूं, लेकिन अगर मैं सही ढंग से चीजों को समझता हूं तो इस एपीआई का उपयोग करते समय कोई जॉइन नहीं है और कोई डिस्टिंट नहीं है।
इसके अलावा, मैं इस अनदेखी की हो, लेकिन Mediastore मेरे एक शैली सभी ट्रैक के लिए खोज करने के लिए अनुमति देता है, लेकिन एक भी प्रश्न में कई शैलियों के सभी पटरियों के लिए नहीं।
तो यह सब जावा में मैन्युअल काम का थोड़ा सा हो जाता है। कार्यक्रम को अब प्रत्येक शैली के लिए कई प्रबंधितQuery() कॉल करना है और कार्यक्रम को परिणामों में शामिल होना है और उन्हें स्क्लाइट के बाहर जावा के साथ अलग करना है (जहां यह कार्य संबंधित है)।
क्या यह वाकई इसे कैसे किया जाना है? क्या SQLite डेटाबेस फ़ाइल में कच्ची क्वेरी भेजने का कोई तरीका नहीं है?
धन्यवाद!
मैंने एंड्रॉइड के भीतर अपने स्वयं के SQLite डेटाबेस के लिए पहले db.rawQuery() का उपयोग किया है, क्या इसे मेटा डीबी पर लागू करना संभव है? http://www.codeproject.com/Articles/119293/Using-SQLite-Database-with-Android – mszaro