2012-07-29 16 views
5

से एक गीत की एक आईडी जानकारी कैसे प्राप्त करें मुझे एक गीत के यूआरआई पता है। मैं गीत की जानकारी, शीर्षक ट्रैक, ect कैसे प्राप्त करूं।एंड्रॉइड एक यूआरआई

क्षमा करें सभी पोस्ट्स मैं पूरी लाइब्रेरी को इंडेक्स करने के लिए एक तरीका प्रदान कर सकता हूं, न कि एक यूआरआई गीत की जानकारी कैसे प्राप्त करें। यूआरआई प्राप्त करने के लिए मैं यही उपयोग कर रहा हूं। AudioID को SharePrefs में संग्रहीत किया जा रहा है। धन्यवाद

int REQUEST_MEDIA = 0; 
String audioID; 

Intent i = new Intent(Intent.ACTION_PICK, MediaStore.Audio.Media.EXTERNAL_CONTENT_URI); 
     startActivityForResult(i, REQUEST_MEDIA);//REQUEST_MEDIA is some const int to operate with in onActivityResult 
if (requestCode == REQUEST_MEDIA && resultCode == RESULT_OK) { 
     audioID = data.getDataString(); 

उत्तर

5

मैंने अपने स्वयं के प्रश्न का उत्तर दिया, उम्मीद है कि यह भविष्य में किसी और की मदद करेगा।

int REQUEST_MEDIA = 0; 


SharedPreferences prefs; 
String prefName = "MyPref"; 
String audioID, artist_name, artist_band; 
Uri MyUri; 



private OnClickListener startListener = new OnClickListener() { 
    public void onClick(View v) { 
     Intent i = new Intent(Intent.ACTION_PICK, MediaStore.Audio.Media.EXTERNAL_CONTENT_URI); 
     startActivityForResult(i, REQUEST_MEDIA);//REQUEST_MEDIA is some const int to operate with in onActivityResult 

    } 
}; 


@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 
    if (requestCode == REQUEST_MEDIA && resultCode == RESULT_OK) { 
     audioID = data.getDataString(); 
     MyUri = Uri.parse(audioID); 
     String[] proj = { MediaStore.Audio.Media._ID, 
       MediaStore.Audio.Media.DATA, 
       MediaStore.Audio.Media.TITLE, 
       MediaStore.Audio.Artists.ARTIST }; 

       Cursor tempCursor = managedQuery(MrUri, 
              proj, null, null, null); 

       tempCursor.moveToFirst(); //reset the cursor 
       int col_index=-1; 
       int numSongs=tempCursor.getCount(); 
       int currentNum=0; 
       do{ 
        col_index = tempCursor.getColumnIndexOrThrow(MediaStore.Audio.Media.TITLE); 
        artist_name = tempCursor.getString(col_index); 
        col_index = tempCursor.getColumnIndexOrThrow(MediaStore.Audio.Artists.ARTIST); 
        artist_band = tempCursor.getString(col_index); 
        //do something with artist name here 
        //we can also move into different columns to fetch the other values 

        currentNum++; 
       }while(tempCursor.moveToNext()); 


    prefs = getSharedPreferences(prefName, MODE_PRIVATE); 
SharedPreferences.Editor editor = prefs.edit(); 
editor.putString("alarm_selected", audioID); 
editor.putString("alarm_name", artist_name); 
editor.putString("alarm_band", artist_band); 
editor.commit();  

    } 
} 
+0

यह किया था से शिष्टाचार है! फॉलो अप के लिए धन्यवाद - – kittka

+0

धन्यवाद, खुशी है कि मैं मदद कर सकता हूं। – user1234051

0

उपर्युक्त उत्तर दुर्भाग्यवश मेरे लिए गेंद नहीं जा सका, हालांकि मैंने इसे अभी भी किसी के लिए खोजा।

//Some audio may be explicitly marked as not being music 
String selection = MediaStore.Audio.Media.IS_MUSIC + " != 0"; 

String[] projection = { 
    MediaStore.Audio.Media._ID, 
    MediaStore.Audio.Media.ARTIST, 
    MediaStore.Audio.Media.TITLE, 
    MediaStore.Audio.Media.DATA, 
    MediaStore.Audio.Media.DISPLAY_NAME, 
    MediaStore.Audio.Media.DURATION 
}; 

Cursor cursor = this.managedQuery(
    MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, 
    projection, 
    selection, 
    null, 
    null); 

private List<String> songs = new ArrayList<String>(); 
while(cursor.moveToNext()) { 
    songs.add(cursor.getString(0) + "||" 
       + cursor.getString(1) + "||" 
       + cursor.getString(2) + "||" 
       + cursor.getString(3) + "||" 
       + cursor.getString(4) + "||" 
       + cursor.getString(5)); 

    //TO DISPLAY IN LISTVIEW 
    ListView lv = (ListView) findViewById(R.id.song_list); 
    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, songs); 
    lv.setAdapter(adapter); 

    cursor.close(); 

इस कोड को इस पोस्ट right here :-)

+0

यह कोड सभी संगीत पूछताछ के लिए प्रतीत होता है। प्रश्न स्पष्ट रूप से एक विशिष्ट यूआरआई का उपयोग करने के लिए पूछता है। अगर आपको लगता है कि यह कोड उचित है, तो कृपया इसे समझाएं, यादृच्छिक कोड पेस्ट न करें। – Vince

+0

@ विन्स आप सही हैं, यह सभी परिणाम लौटाता है, और किसी भी माध्यम से यादृच्छिक नहीं था। मैं आज बेहतर सवाल के अनुरूप अद्यतन करूंगा। –

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