Track info of currently playing music
android
Solution
This might help. I use this to get metadata on audio files in one of my apps:
String scheme = mAudioUri.getScheme();
String title = "";
String artist = "";
if(scheme.equals("content")) {
String[] proj = {MediaStore.Audio.Media.TITLE, MediaStore.Audio.Media.ARTIST};
Cursor cursor = this.getContentResolver().query(mAudioUri, proj, null, null, null);
if(cursor != null && cursor.getCount() > 0) {
cursor.moveToFirst();
if(cursor.getColumnIndex(MediaStore.Audio.Media.TITLE) != -1) {
title = cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.TITLE));
artist = cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.ARTIST));
}
}
}
There are lots of columns in the MediaStore.Audio.Media class which you can use to find what you're looking for I think.
Problem
I am implementing an application related to getting current music track information. I am using the following code to get that: ``` public class CurrentMusicTrackInfoActivity extends Activity { public static final String SERVICECMD = "com.android.music.musicservicecommand"; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); IntentFilter iF = new IntentFilter(); iF.addAction("com.android.music.metachanged"); iF.addAction("com.android.music.playstatechanged"); iF.addAction("com.android.music.playbackcomplete"); iF.addAction("com.android.music.queuechanged"); registerReceiver(mReceiver, iF); } private BroadcastReceiver mReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { String action = intent.getAction(); String cmd = intent.getStringExtra("command"); Log.v("tag ", action + " / " + cmd); String artist = intent.getStringExtra("artist"); String album = intent.getStringExtra("album"); String track = intent.getStringExtra("track"); Log.v("tag", artist + ":" + album + ":" + track); Toast.makeText(CurrentMusicTrackInfoActivity.this, track, Toast.LENGTH_SHORT).show(); } }; } ``` It is working fine for some mobiles only. I want to implement code to get current music track info in all Android devices (e.g. HTC and Samsung devices). Is there any way of doing this?