5

Wie überprüfe ich, von welcher Musik-App die Musik im Android-Gerät abgespielt wird?Wie überprüft man, ob Musik von welcher Musik-App abgespielt wird?

Mit AudioManager können wir überprüfen, ob die Musik gespielt wird oder nicht. Es enthält jedoch nicht die Details der Musik-App, von der es gespielt wird.

Audio-Manager am = (Audio-Manager) this.getSystemService (Context.AUDIO_SERVICE);

am.isMusicActive() kehrt wahr wenn Musik in Gerät gespielt wird. Aber ich möchte den Musik-App-Namen, von dem es gespielt wird.

Referenzen:

How do you check if music is playing by using a broadcast receiver?

Android development : To find out which app is playing music currently

Zum Beispiel, wenn ich Musik von Google Music-Player abspielen. Dann muss ich in der Lage sein, den Namen der Musik-App als "Google Music Player" zu erhalten.

Jede Antwort für diese würde geschätzt werden. Vielen Dank!

Antwort

0

das Versuchen zur Zeit zu bekommen spielen Dateipfad der Spur:

public Cursor query(Context context, Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder, int limit) { 
    try { 
     ContentResolver resolver = context.getContentResolver(); 
     if (resolver == null) return null; 
     if (limit > 0) uri = uri.buildUpon().appendQueryParameter("limit", "" + limit).build(); 
     return resolver.query(uri, projection, selection, selectionArgs, sortOrder); 
    } catch (UnsupportedOperationException ex) { return null; } 
} 
private BroadcastReceiver mReceiver = new BroadcastReceiver() { 
    @Override 
    public void onReceive(Context context, Intent intent) { 
     String path = intent.getStringExtra("track").replaceAll("'","''"); 
     Cursor c = query(context, MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, 
       new String[] { MediaStore.Audio.Media.DATA }, MediaStore.Audio.Media.TITLE + "='" + path + "'", 
       null, null, 0); 
     try { 
      if (c == null || c.getCount() == 0) return; 
      int size = c.getCount(); 
      if (size != 1) return; 
      c.moveToNext(); 

      // Here's the song path 
      String songPath = c.getString(0); 
      Log.d("ROAST_APP", "" + songPath); 
     } finally { 
      if (c != null) c.close(); 
     } 
    } 
}; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_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); 
} 

Quellen:
Track info of currently playing music
Needletagger

Verwandte Themen