Latar belakang: Saya memiliki headset Bluetooth A2DP / AVRCP ( Nokia BH-505 ) yang saya gunakan secara aktif untuk mendengarkan podcast dan musik. Tentu saja, saya mendengarkan ini dengan aplikasi yang berbeda. Headset bluetooth memiliki beberapa tombol "perintah" (AVRCP), yang relevan dengan audio - khusus: "trek berikutnya", "trek sebelumnya" dan "play / pause"
Saat ini setiap kali saya menekan salah satu perintah, salah satu pemutar musik yang saya instal ( Meridian ) selalu mendapat perintah - bahkan ketika itu tidak aktif. Jadi ketika saya mengklik "play / pause" yang bermaksud untuk menghentikan podcast ( DoggCatcher ), sebagai gantinya Meridian diaktifkan dan mulai memutar musik bersama dengan podcast.
Kedua pemain diatur untuk menggunakan headset: DoggCatcher telah mengaktifkan "Bind to headset", dan Meridian telah mengaktifkan "Headset Buttons". Saat ini saya menggunakan stock Android 2.2.1 yang tidak di-root pada GT-S5570 tetapi mungkin rooting dan meningkatkan ke 2.3 CyanogenMod (atau semacamnya), di masa depan.
Mengabaikan hal-hal spesifik, pertanyaan saya tentang ini lebih umum:
- Bagaimana cara Android menentukan aplikasi mana yang bereaksi terhadap perintah ini? Saya tertarik bahkan dalam jawaban yang sangat techincal.
Di sisi praktis saya tertarik pada:
- Apakah saya harus mengutak-atik setiap pengaturan aplikasi untuk menentukan aplikasi mana yang mengambil perintah, atau adakah cara umum untuk menentukan ini?
- Apakah ada cara untuk mengkonfigurasi ini sehingga aplikasi yang benar - benar aktif akan secara otomatis selalu mendapatkan prioritas? (seperti yang ditanyakan sebagian dalam pertanyaan lain )
Bagaimana pertanyaan ini berbeda dari pertanyaan serupa:
"Cara Mengatur Perilaku Tombol 'Mainkan' pada Bluetooth Remote" - hanya fokus praktis, berbeda, sejauh ini tidak memiliki jawaban, dan saya juga tertarik pada jawaban yang memerlukan rooting atau firmware khusus (terutama CyanogenMod).
Ubah aplikasi default untuk menangani kontrol headset - masalah tepat yang diperbaiki, tetapi tidak dengan cara yang akan menjawab pertanyaan saya, meskipun itu memberikan beberapa petunjuk tentang cara kerja.
Bagaimana saya bisa membuat tombol di headphone saya mengontrol sesuatu selain dari pemutar musik stok? - Sebagian pertanyaan serupa di sisi praktis, tetapi tidak ada fokus untuk menjelaskan cara kerjanya, dan satu-satunya jawaban difokuskan pada bagian yang tidak saya tanyakan (membuat hanya satu aplikasi menerima perintah).
mengapa semua aplikasi suara mendapatkan acara tombol bluetooth, sekaligus - sangat mirip, tetapi bertanya tentang masalah tertentu (semua pemutar media mendapatkan perintah AVRCP)
sumber
Jawaban:
media-button-router , yang telah disebutkan dalam salah satu pertanyaan Anda yang ditautkan, mencoba mencari tahu aplikasi apa yang sedang diputar musik dan untuk mengirim acara AVRCP ke sana. Selain itu, ia mencantumkan semua aplikasi yang diinstal, yang menyatakan untuk mendengarkan acara AVRCP.
Apa yang membuat AVRCP rumit: Beberapa aplikasi, seperti Sony Music Unlimited , tampaknya tidak menyatakan
android.intent.action.MEDIA_BUTTON
dalam manifesnya. Untuk alasan ini (atau mungkin alasan lain) mereka tidak dapat dikontrol melalui media-button-router. Saya tahu bahwa mis. Musik Tidak Terbatas dapat dikontrol melalui AVRCP karena saya membacanya di komentar pengguna dan juga saya bisa menjalankannya sekali tetapi sayangnya itu tidak dapat direproduksi. Jadi dalam kasus-kasus tersebut, sepertinya kita harus menunggu pembaruan aplikasi dengan implementasi penanganan acara AVRCP yang bersih.Menurut wiki media-tombol-router "Penanganan Tombol Media dilakukan melalui siaran yang dipesan, dan setiap aplikasi menetapkan prioritasnya sendiri untuk menerima." Jadi mungkin bisa menulis aplikasi yang menampilkan prioritas ini dan, pada dasarnya, akan memungkinkan Anda untuk menentukan aplikasi apa yang akan dimulai. Namun, saya tidak tahu tentang aplikasi semacam itu.
sumber
Mereka akhirnya menambahkan bagian untuk menjawab pertanyaan yang tepat ini: https://developer.android.com/guide/topics/media-apps/mediabuttons.html
sumber
Mungkin ini akan sedikit membantu:
Samsung S5 -> penerima Bluetooth + colokan telepon In Ear
Saya menggunakan Samsung S5, pertama dengan aplikasi digital untuk mengunduh dan memutar musik. Lalu saya berubah dan menggunakan Cloudplayer. Tetapi setiap kali Clouplayer diputar dan saya menekan tombol pause / play pada receiver Bluetooth saya, aplikasi digital saya akan mulai memutar musik. Saya tidak bisa mengubah pengaturan apa pun untuk mengubah play / pause bluetooth ke arah Cloudplayer. Saya kemudian menghapus semua musik 7digital saya yang diunduh dan mencoba lagi. Masalah terpecahkan! Mainkan / jeda entah bagaimana terhubung ke Cloudplayer sekarang.
sumber
Ini bukan masalah dengan perangkat BT Anda. Ketika dipasangkan dengan telepon Anda, Bluetooth Headset memainkan aliran A2DP aktif yang dimulai dari Ponsel. Jika itu adalah beberapa media player standar pada ponsel Anda, ia dapat bereaksi terhadap semua perintah kontrol AVRCP seperti play jeda lewati, fw dll. Sekarang ketika Anda memainkan sesuatu di web atau pemain lain yang tidak menerapkan semua kontrol seperti itu pada AVRCP, untuk BT Headset itu masih aliran A2DP aktif yang datang. Ini akan mengirimkan pesan Kontrol AVRCP ke ponsel Anda. Sekarang telepon Anda yang seharusnya merutekan perintah-perintah ini ke aplikasi terkait dalam kebanyakan kasus ke sumber streaming A2DP aktif atau dalam kasus Anda telepon Anda masih meneruskan perintah AVRCP ke pemutar musik default.
Taruhan terbaik Anda adalah mencoba mengonfigurasikan ponsel Anda asalkan sumber yang Anda mainkan mendukung kontrol AVRCP. Jika tidak maka Anda tidak dapat melakukan apa pun. Jika ya, berarti Mobile seharusnya mengizinkan perintah AVRCP ini ditangani oleh sumber streaming A2DP aktif Anda.
sumber
Aplikasi ini akan menjadi "Media Button Router" https://play.google.com/store/apps/details?id=com.harleensahni.android.mbr
sumber