Просты фонавы сэрвіс, які выяўляе любы прайграванне на глабальным audiomix, а затым адкрывае канал BluetoothSco так гук прайграваецца на мана Bluetooth прылады (свабодныя рукі профілю).
Ідэя
Ўключыць дынамічнае прайграванне любога носьбіта гуку на прыладзе Bluetooth. Спецыяльна для накіравання кіраўніцтва навігацыйнага праграмнага забеспячэння. Канал Bluetooth павінен быць адкрыты, калі запускаецца прайграванне і зачыняецца пасля завяршэння прайгравання.
Параўнанне з аналагічнымі праграмамі:
Усе іншыя прыкладання, якія я бачыў, не з'яўляюцца дынамічнымі або (я мяркую) выкарыстоўваць функцыю isMusicActive (), якая на самой справе не з'яўляецца надзейным. Таму я выкарыстоўваю Visualizer API, каб захапіць ананімнымі інфармацыю з глабальнай audiomix і можа дакладна вызначыць вызначыць, калі гук прайграваецца. Функцыя візуалізатар API я выкарыстоўваю даступны толькі з узроўню API 19 (Kitkat - Android 4.4). Для ўзроўняў API ніжэй я выкарыстоўваю функцыю isMusicActive (а).
Дзяржаўныя Перанакіраванне на аснове
Абслугоўванне толькі дыскаводзе, калі адаптар Bluetooth уключаны, усё астатняе было б не мае сэнсу так? Перанакіраванне пачынаецца толькі калі Bluetooth прылада падлучанае да гучнай сувязі Bluetooth профілю. Калі рукі вольны злучэнне больш не даступны перанакіраванне спыняецца.
Static Перанакіраванне
Калі вы вылучыце гэты варыянт аўдыё Перанакіраванне пачнецца, як толькі вы пачнеце службу і спыняецца толькі з сэрвісам. Ні адна гукавая інфармацыя не аналізуецца.
Калі вы выбіраеце перападключэнне пасля апцыёна служба перазапускаецца пасля галасавога выкліку завяршаецца (тэлефон дадатак мае прыярытэт у дачыненні да канала SCO). Служба таксама перазагружаецца, калі вы ў канчатковым "выклік" для перанакіравання сродкаў масавай інфармацыі. Гэтая опцыя даступная толькі ў спалучэнні са статычным перанакіраванні.
Intent для запуску / прыпынку службы
Гэта сапраўды вельмі проста! Адправіць з наступных намераў
& Бык; net.philipp_koch.dynamicmediabtrouter.ON
& Бык; net.philipp_koch.dynamicmediabtrouter.OFF
Патрабаванні:
& Бык; АНДРОІД прылады з мінімальным узроўнем API 11 (Honeycomb - Android 3.0)
- Узровень API 18 (Jelly Bean - Android 4.3) для патоку сырога Bluetooth. Ніжняя версія можа запатрабаваць ад вас, каб прыняць "выклік"
- Узровень API 19 (Kitkit - Android 4.4) для распазнання гукавых сігналаў праз візуалізатара API.
& Бык; Bluetooth-прылада, якое падтрымлівае рук свабодны профіль (звычайна гарнітуры або аўтамабільныя дамафоны)
& Бык; Няма менеджэры задач! Яны дзярмо і нічога іншага! Яны забіваюць фонавую службу, так што не скардзяцца!
Праца як яна была задумана (дынамічны рэжым)
Калі пакласці канец "выклік" перанакіраванне не спыняецца і гук ня накіроўваецца ў нікуды. Бо прыкладанне было прызначана для навігацыі прыкладанняў гэта карысная канструкцыя:
Калі перанакіраванне пачынаецца і вы ўжо ў курсе інфармацыі, прадстаўленай Вы маглі б скончыць "заклік", як толькі ён пачынае. Пасля таго, як прайграваецца службовая інфармацыя будзе зачыніць канал, як звычайна, і адкрыць яго зноў, як толькі выяўляецца аўдыё.
Калі вы выкарыстоўваеце прыкладанне для перанакіравання музыкі для сталай часу і завяршэнні "выклік" выпадкова вы павінны прыпыніць музыку, па меншай меры, некалькі секунд. Служба спыніць перанакіраванне і запусціць яго зноў, як вы націсніце кнопку прайгравання.
Вы выпрабоўваеце дрэнная якасць гуку
Я не магу гэта выправіць. Свабодныя рукі профіль ня прызначаны для высокага якасці. Вы павінны выкарыстоўваць замест A2DP!
Што засталося зрабіць?
& Бык; Супын службы з моманту паведамлення