Ce determină ce aplicație acționează la o comandă Bluetooth AVRCP?

Fundal: Am o cască Bluetooth A2DP / AVRCP ( Nokia BH -505 ) pe care îl folosesc activ pentru a asculta atât podcast-uri, cât și muzică. Desigur, le ascult cu diferite aplicații. Setul cu cască Bluetooth are câteva butoane de „comandă” (AVRCP), relevante pentru audio – în special: „următorul track”, „track precedent” și „play / pause”

În prezent, ori de câte ori apăs pe oricare dintre comenzi , unul dintre playerele de muzică pe care le-am instalat ( Meridian ) primește întotdeauna comanda – chiar și atunci când „nu este activă. Deci, când fac clic pe” redare / pauză ” intenționând să întrerupă un podcast ( DoggCatcher ), Meridianul este activat și începe să redea muzică împreună cu podcastul.

Ambii jucători sunt setați la folosiți setul cu cască: DoggCatcher are „Bind to headset” activat, iar Meridian are „Butoanele setului cu cască” activat. În prezent, folosesc Android 2.2.1 stoc neînrădăcinat pe GT-S5570, dar poate fi înrădăcinat și actualizat la 2.3 CyanogenMod ( sau altele), în viitor.

Ignorând specificul, întrebarea mea despre aceasta este mai generală:

  • Cum determină Android ce aplicație primește să reacționez la aceste comenzi? Mă interesează chiar și un răspuns foarte tehnic.

Pe partea practică, mă interesează:

  • Trebuie să mă joc cu setările fiecărei aplicații pentru a determina ce aplicație ia comenzile sau există un mod general de a determina acest lucru?
  • Există o modalitate de configurare acest lucru, astfel încât aplicația care „este activă să primească automat întotdeauna prioritatea? (așa cum a fost pus parțial în altă întrebare )

Cum diferă această întrebare de întrebări similare:

Comentarii

Răspuns

media-button-router , menționat deja într-una dintre întrebările dvs. legate, încearcă să descopere ce aplicație redă în prezent muzică și să trimită evenimentele AVRCP la ea. În plus, enumeră toate aplicațiile instalate, care declară să asculte evenimentele AVRCP.

Ceea ce face complicat AVRCP: Unele aplicații, cum ar fi Music Unlimited de la Sony , par să nu declare android.intent.action.MEDIA_BUTTON în manifestul lor. Din acest motiv (sau poate din alt motiv) nu pot fi controlate prin media- buton-router. Știu că de ex. Music Unlimited poate fi controlat prin AVRCP, deoarece l-am citit într-un comentariu al utilizatorului și, de asemenea, am reușit să-l rulez odată dar, din păcate, nu este reproductibil. Deci, în aceste cazuri, se pare că trebuie să așteptați actualizarea unei aplicații cu o implementare curată a gestionării evenimentelor AVRCP.

Conform iki wiki media-button-router „ „Butonul media Manipularea intenției se face prin difuzări comandate și fiecare aplicație își stabilește propria prioritate pentru primire.” Deci poate ar putea fi posibil să scrieți o aplicație care să afișeze aceste priorități și, de fapt, ar vă permite să determinați ce aplicație va începe. Cu toate acestea, nu știu despre o astfel de aplicație.

Răspuns

În cele din urmă au adăugat o secțiune pentru a răspunde la această întrebare exactă: https://developer.android.com/guide/topics/media-apps/mediabuttons.html

Răspuns

Poate că acest lucru vă va ajuta puțin:

Samsung S5 -> Receptor Bluetooth + mufe pentru telefoane Ear

Folosesc Samsung S5, mai întâi cu aplicația 7digital pentru a descărca și reda muzică. Apoi am schimbat și am folosit Cloudplayer. Dar de fiecare dată când Clouplayer se joacă și apăs butonul pauză / redare de pe receptorul meu Bluetooth, aplicația mea 7digital va începe să redea muzică. Nu am putut schimba nicio setare pentru a schimba redarea / pauza bluetooth către Cloudplayer. Am șters apoi toată muzica descărcată 7digital și am încercat din nou. Problema rezolvata! Redarea / pauza este cumva legată acum de Cloudplayer.

Răspuns

Nu este o problemă cu dispozitivul BT. Când este asociat cu telefonul dvs., setul cu cască Bluetooth redă un flux A2DP activ inițiat de pe telefonul mobil. Dacă este un player media standard pe telefonul dvs., acesta poate reacționa la toate comenzile de control AVRCP, cum ar fi redare pauză salt, fw etc. Acum, când jucați ceva pe web sau un alt player care nu implementează toate aceste controale prin AVRCP, pentru Căști BT, este încă un flux A2DP activ. Va trimite mesaje de control AVRCP pe telefonul dvs. Acum, telefonul dvs. ar trebui să direcționeze aceste comenzi către aplicația respectivă, în majoritatea cazurilor, către sursa de streaming activă A2DP sau, în cazul dvs., telefonul dvs. redirecționează în continuare comenzile AVRCP către playerul de muzică implicit.

cel mai bun pariu ar fi să încercați să vă configurați telefonul mobil, cu condiția ca sursa pe care o jucați să accepte controlul AVRCP. Dacă nu, oricum nu puteți face nimic. În caz contrar, atunci definitiv Mobile ar trebui să permită ca aceste comenzi AVRCP să fie gestionate de sursa dvs. de difuzare A2DP activă. >

Această aplicație ar fi „Media Button Router” https://play.google.com/store/apps/details?id=com.harleensahni.android.mbr

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *