Tausta: Minulla on A2DP / AVRCP-bluetooth-kuulokkeet ( Nokia BH -505 ), jota käytän aktiivisesti kuuntelemaan sekä podcasteja että musiikkia. Tietysti kuuntelen näitä eri sovelluksilla. Bluetooth-kuulokkeissa on joitain audion kannalta merkityksellisiä ”komento” (AVRCP) -painikkeita: ”seuraava kappale”, ”edellinen kappale” ja ”toisto / tauko”
Tällä hetkellä, kun painan mitä tahansa komentoja , yksi asentamistani musiikkisoittimista ( Meridian ) saa aina komennon, vaikka se ei olisi aktiivinen. Joten kun napsautan ”toista / tauko” aikoo keskeyttää podcastin ( DoggCatcher ), sen sijaan Meridian aktivoidaan ja alkaa toistaa musiikkia yhdessä podcastin kanssa.
Molemmat soittimet on asetettu käytä kuulokkeita: DoggCatcherissa on ”Sido kuulokemikrofoniin” -asetus päällä ja Meridianilla on ”Kuulokepainikkeet” päällä. Käytän tällä hetkellä juurtumatonta Android 2.2.1 -tuotetta GT-S5570: ssä, mutta saatan olla juurtumassa ja päivittämässä versioon 2.3 CyanogenMod ( tai vastaava), tulevaisuudessa.
Yksityiskohdat huomioimatta kysymykseni tästä on yleisempi:
- Miten Android määrittää sovelluksen reagoida näihin komentoihin? Minua kiinnostaa jopa hyvin tekninen vastaus.
Käytännön puolella minua kiinnostaa:
- Pitäisikö minun hioa kutakin sovellusasetusta määritelläksesi, mikä sovellus ottaa komennot, vai onko jokin yleinen tapa määrittää tämä?
- Onko olemassa tapaa määrittää niin, että sovellus, joka on todella aktiivinen , saa aina aina etusijan? (kuten osittain kysyttiin uudessa kysymyksessä )
Miten tämä kysymys eroaa vastaavista kysymyksistä:
-
”Toista-painikkeen käyttäytymisen asettaminen Bluetooth-kaukosäätimellä” – vain käytännöllinen, erilainen tarkennus, toistaiseksi ei ole vastauksia, ja Olen kiinnostunut myös vastauksista, jotka vaativat juurtumista tai mukautettua laiteohjelmistoa (erityisesti CyanogenMod).
-
Vaihda oletussovellus käsittelyä varten kuulokemikrofonien hallintalaitteet – tarkka ongelma, joka korjattiin, mutta ei tavalla, joka vastaisi kysymyksiini, vaikka se antaa joitain vihjeitä asioiden toiminnasta.
-
Kuinka voin saada kuulokkeiden painikkeen ohjaamaan jotain muuta kuin varastomusiikkisoitinta? – osittain samanlainen kysymys käytännön puolella, mutta ei keskity selittämään miten se todella toimii, ja ainoa vastaus keskittyy osaan, josta en kysy (vain yhden sovelluksen saa komennot).
-
miksi kaikki äänisovellukset saavat Bluetooth-painikkeet tapahtumia kerralla – hyvin samanlaisia, mutta kysytään tietystä asiasta (kaikki mediasoittimista, jotka saavat AVRCP-komennon)
Kommentit
- Onnistuin löytämään hyviä tietoja tämä Android-kehittäjäblogista – keskustelemalla siitä, miten tämä tulisi toteuttaa sovelluksissa versiossa 2.2: ” Sovellusten salliminen pelata hienosti (r) keskenään: Kaukosäätimen painikkeiden käsitteleminen ”
- Vuonna 2016 tämä on edelleen ongelma -. – Siirtyminen iOS: sta voi olla minulle toistaiseksi ärsyttävin osa androidia: /
- Liittyy? android.stackexchange.com/q/218823/693
vastaus
mediapainike-reititin , joka on jo mainittu yhdessä linkitetyissä kysymyksissäsi, yrittää selvittää mikä sovellus toistaa musiikkia ja lähettää siihen AVRCP-tapahtumat. Lisäksi siinä luetellaan kaikki asennetut sovellukset, jotka ilmoittavat kuuntelevan AVRCP-tapahtumia.
Mikä tekee AVRCP: stä monimutkaisen: Jotkin sovellukset, kuten Sonyn Music Unlimited ei ilmeisesti ilmoita android.intent.action.MEDIA_BUTTON
-ilmoituksessaan. Tästä syystä (tai ehkä jostakin muusta) syystä niitä ei voida hallita media- painike-reititin. Tiedän, että esim. Music Unlimited -ohjelmaa voidaan ohjata AVRCP: n kautta, koska luin sen käyttäjän kommentista ja onnistuin myös saamaan sen toimimaan kerran , mutta valitettavasti sitä ei voi toistaa. Joten näissä tapauksissa näyttää siltä, että meidän on odota sovelluksen päivitystä AVRCP-tapahtumien käsittelyn puhtaalla toteutuksella.
media-button-reititin ”wikin mukaan ”Media Button Intent -käsittely tapahtuu tilattujen lähetysten kautta, ja kukin sovellus asettaa sille oman prioriteettinsa vastaanottamista varten. Joten ehkä voisi olla mahdollista kirjoittaa sovellus, joka näyttää nämä prioriteetit ja itse asiassa avulla voit määrittää, mikä sovellus käynnistyy. En kuitenkaan tiedä tällaisesta sovelluksesta.
Vastaa
He lopulta lisäsivät osan vastaamaan tähän tarkkaan kysymykseen: https://developer.android.com/guide/topics/media-apps/mediabuttons.html
Vastaa
Ehkä tämä auttaa hieman:
Samsung S5 -> Bluetooth-vastaanotin + In Ear -puhelimen pistokkeet
Käytän Samsung S5: tä, ensin 7digital-sovelluksella musiikin lataamiseen ja toistamiseen. Sitten vaihdoin ja käytin Cloudplayeria. Mutta joka kerta, kun Clouplayer toistaa ja painan tauko / toisto-painiketta Bluetooth-vastaanottimessa, 7-numeroinen sovellukseni alkaa toistaa musiikkia. En voinut muuttaa mitään asetusta vaihtaaksesi bluetooth-toistoa / taukoa kohti Cloudplayeria. Poistin sitten kaikki ladatut 7-numeroiset musiikkini ja yritin uudelleen. Ongelma ratkaistu! Toisto / tauko on jotenkin linkitetty Cloudplayeriin nyt.
Vastaa
Se ei ole ongelma BT-laitteessasi. Pariliitettynä puhelimeesi Bluetooth-kuuloke toistaa aktiivista A2DP-virtaa, joka on aloitettu matkapuhelimesta. Jos puhelimessasi on jokin tavallinen mediasoitin, se voi reagoida kaikkiin AVRCP-ohjauskomentoihin, kuten toiston taukohyppy, fw jne. BT-kuuloke on edelleen aktiivinen A2DP-virta. Se lähettää AVRCP Control -viestit puhelimeesi. Nyt puhelimesi on tarkoitus reitittää nämä komennot kyseiseen sovellukseen useimmissa tapauksissa aktiiviseen A2DP-suoratoistolähteeseen tai puhelimesi edelleen lähettää edelleen AVRCP-komentoja oletussoittimelle.
paras veto olisi yrittää määrittää matkapuhelimesi edellyttäen, että toistamasi lähde tukee AVRCP-ohjausta. Jos näin ei ole, et voi tehdä mitään. Jos se tapahtuu, lopullisesti Mobilen tulisi sallia näiden AVRCP-komentojen käsitteleminen aktiivisella A2DP-suoratoistolähteelläsi.
Vastaa
Tämä sovellus olisi ”Media Button Router” https://play.google.com/store/apps/details?id=com.harleensahni.android.mbr