Mikä määrittää, mikä sovellus toimii bluetooth AVRCP -komennolla?

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ä:

Kommentit

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

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *