在Kivy android上检测(媒体按钮)耳机按下

2024-04-25 23:42:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我的目标是截获媒体按钮压在Kivy上,但我做什么实际工作,我没有java的经验,所以任何帮助将不胜感激,因为我愿意学习。谢谢

from kivy.core.window import Window
from android.broadcast import BroadcastReceiver
from jnius import autoclass
KeyEvent = autoclass("android.view.KeyEvent")

class TestApp(App):

    def build(self):
        self.br = BroadcastReceiver(
            self.on_broadcast, actions=['media_button'])
        self.br.start()

    def on_broadcast(self, context, intent):
        event = intent.getParcelableExtra(intent.EXTRA_KEY_EVENT)
        if event == KeyEvent.ACTION_UP and KeyEvent.KEYCODE_MEDIA_PLAY:
            print("Media button pressed")

       # extras = intent.getExtras().getString("EXTRA_KEY_EVENT")

    """
    def on_start(self):
        win = Window
        win.bind(on_keyboard=self.my_key_handler)

    def my_key_handler(self, window, keycode1, keycode2, text, modifiers):
        if keycode1 in [KeyEvent.KEYCODE_HEADSETHOOK, KeyEvent.KEYCODE_MUSIC, KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE]:
            print("Media button pressed")

            return True
        return False
    """

    def on_pause(self):
        self.br.stop()
        return True

    def on_resume(self):
        self.br.start()

更新

Intent = autoclass("android.content.Intent")

    def on_broadcast(self, context, intent):
        event = intent.getParcelableExtra(Intent.EXTRA_KEY_EVENT)
        if event == KeyEvent.ACTION_UP and KeyEvent.KEYCODE_MEDIA_PLAY:
            print("Media button pressed")

意图-筛选器.xml你知道吗

<intent-filter android:priority="2147483647" >
   <action android:name="android.intent.action.MEDIA_BUTTON" />
</intent-filter>

Tags: frombrimportselfeventondefbutton