Mi határozza meg, hogy melyik alkalmazás működik a bluetooth AVRCP paranccsal?

Háttér: A2DP / AVRCP bluetooth fülhallgatóm van ( Nokia BH -505 ), amelyet aktívan használok podcastok és zenék hallgatására egyaránt. Természetesen ezeket különböző alkalmazásokkal hallgatom. A bluetooth headset rendelkezik néhány, az audió szempontjából releváns “parancs” (AVRCP) gombbal: “következő szám”, “előző szám” és “lejátszás / szünet”

Jelenleg, amikor megnyomom valamelyik parancsot , az egyik általam telepített zenelejátszó ( Meridian ) mindig megkapja a parancsot – még akkor is, ha nem aktív. Tehát amikor a “lejátszás / szünet” gombra kattintok szüneteltetni kíván egy podcastot ( DoggCatcher ), ehelyett a Meridian aktiválódik, és elkezd zenét játszani a podcast mellett.

Mindkét játékos beállítása használja a headsetet: A DoggCatcher „Bind to headset” funkciója be van kapcsolva, a Meridian pedig be van kapcsolva a „Headset Buttons” funkcióval. Jelenleg az Android 2.2.1 gyökér nélküli állományát használom a GT-S5570-en, de lehet, hogy gyökeret eresztek és frissítek 2.3 CyanogenMod ( vagy ilyen), a jövőben.

A konkrétumokat figyelmen kívül hagyva ezzel kapcsolatos kérdésem általánosabb:

  • Hogyan határozza meg az Android, hogy melyik alkalmazást kapja meg reagálni ezekre a parancsokra? Még egy nagyon technikai válasz is érdekel.

A gyakorlati oldalon érdekel:

  • Az egyes alkalmazás-beállításokkal kell-e babrálnom, hogy meghatározzam, melyik alkalmazás veszi a parancsokat, vagy van-e valamilyen általános módszer ennek meghatározására?
  • Van-e mód konfigurálásra ezt annak érdekében, hogy az az alkalmazás, amely valóban aktív automatikusan automatikusan megkapja az elsőbbséget? (ahogyan részben a másik kérdésben feltették)

Miben különbözik ez a kérdés a hasonló kérdésektől:

Megjegyzések

Válasz

media-button-router , amelyet már említettek az egyik kapcsolt kérdésben, megpróbálja kitalálni melyik alkalmazás éppen zenél, és hogy az AVRCP eseményeket elküldje hozzá. Ezenkívül felsorolja az összes telepített alkalmazást, amelyek deklarálják az AVRCP események meghallgatását.

Mi teszi bonyolulttá az AVRCP-t: Néhány alkalmazás, például a Sony Music Unlimited nem deklarálja a android.intent.action.MEDIA_BUTTON -t a nyilvántartásában. Emiatt (vagy esetleg valamilyen más) okból nem vezérelhetők média- gomb-router. Tudom, hogy pl. A Music Unlimited az AVRCP-n keresztül vezérelhető, mivel elolvastam egy felhasználói megjegyzésben, és egyszer futtathattam is, de sajnos nem reprodukálható. Tehát ezekben az esetekben úgy tűnik, hogy muszáj várja meg az alkalmazás frissítését az AVRCP eseménykezelés tiszta megvalósításával.

A media-button-router wiki szerint “A média gomb szándékának kezelése megrendelt adásokon keresztül történik, és minden alkalmazás meghatározza a vételi prioritást. Tehát talán lehetne olyan alkalmazást írni, amely megjeleníti ezeket a prioritásokat, és valójában lehetővé teszi, hogy meghatározza, milyen alkalmazás indul. Ilyen alkalmazásról azonban nem tudok.

Válasz

Végül felvettek egy szakaszt, hogy megválaszolják ezt a pontos kérdést: https://developer.android.com/guide/topics/media-apps/mediabuttons.html

Válasz

Talán ez segít egy kicsit:

Samsung S5 -> Bluetooth-vevő + In Ear telefon dugaszok

A Samsung S5-öt használom, először a 7digital alkalmazással zene letöltésére és lejátszására. Aztán megváltoztattam és felhasználtam a Cloudplayert. De minden alkalommal, amikor a Clouplayer játszik, és megnyomom a szünet / lejátszás gombot a Bluetooth vevőmön, a 7digital alkalmazásom elkezd zenélni. Nem változtathattam meg egyetlen beállítást sem, hogy megváltoztassam a bluetooth lejátszást / szünetet a Cloudplayer felé. Ezután töröltem az összes 7 számjegyű letöltött zenét, és megpróbáltam újra. Probléma megoldódott! A Lejátszás / szünet most valahogy a Cloudplayerhez kapcsolódik.

Válasz

Ez nem probléma a BT eszközöddel. Ha a telefonjával párosul, a Bluetooth Headset aktív A2DP adatfolyamot játszik le, amelyet mobiltelefonról indítottak. Ha valamilyen szabványos médialejátszóról van szó a telefonján, akkor reagálhat az összes AVRCP vezérlőparancsra, például a lejátszási szünet átugrására, az fw-re, stb. A BT Headset továbbra is aktív A2DP adatfolyam érkezik. Az AVRCP Control üzeneteket elküldi a telefonjára. Most a telefonjának állítólag kell továbbítania ezeket a parancsokat a megfelelő alkalmazásba, az esetek többségében az aktív A2DP streaming forrásba, vagy Ön esetében a telefon továbbra is továbbítja az AVRCP parancsokat az alapértelmezett zenelejátszóra.

A legjobb megoldás az lenne, ha megpróbálnád konfigurálni a mobilodat, feltéve, hogy a lejátszott forrás támogatja az AVRCP vezérlést. Ha nem így van, akkor semmit sem tehet. Ha mégis, akkor a Mobilnak meg kell engednie, hogy ezeket az AVRCP parancsokat az aktív A2DP streaming forrás kezelje.

Válasz

Ez az alkalmazás a “Media Button Router” lesz. https://play.google.com/store/apps/details?id=com.harleensahni.android.mbr

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük