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:
-
„Cum să setați comportamentul butonului” Redare „la telecomanda Bluetooth” – doar o concentrare practică, diferită, până acum nu are răspunsuri și Sunt „interesat și de răspunsurile care ar necesita înrădăcinare sau firmware personalizat (în special CyanogenMod).
-
Schimbați aplicația implicită pentru manipulare comenzi pentru căști – o problemă exactă care a fost rezolvată, dar nu într-un mod care să răspundă la întrebările mele, deși oferă câteva indicii cu privire la modul în care funcționează lucrurile.
-
Cum pot face ca butonul de pe căștile mele să controleze altceva decât playerul de muzică de stoc? – întrebare parțial similară din punct de vedere practic, dar niciun accent pe explicarea modului funcționează de fapt, iar singurul răspuns se concentrează pe partea despre care nu mă întreb (făcând ca o singură aplicație să primească comenzile).
-
de ce toate aplicațiile de sunet primesc evenimente cu butoane bluetooth, simultan – foarte asemănător, dar întrebând despre o anumită problemă (toate dintre playerele media care primesc comanda AVRCP)
Comentarii
- Am reușit să găsesc câteva informații bune legate de acest lucru dintr-un blog pentru dezvoltatori Android – discutând modul corect în care acest ar trebui să fie implementat de aplicații în 2.2: ” Permiterea aplicațiilor să se joace frumos (r) între ele: Manevrarea butoanelor de telecomandă ”
- În 2016, aceasta este încă o problemă -. – Trecerea de pe iOS ar putea fi cea mai iritantă parte din Android pentru mine până acum: /
- În legătură? android.stackexchange.com/q/218823/693
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