我在这里看到了(https://gist.github.com/tito/7432757)如何使用 pyjnius 使用 kivy 通过蓝牙连接来访问 java 类。我想做的是发现新设备并使用 sdp 不安全地连接到它们。我不知道如何在kivy中接收
startDiscovery()
的结果。在java中你必须使用广播接收器。我是否也必须使用 pyjnius 从 android 访问广播接收器?
您错过了 Python-for-android / android.broadcast
模块中的
BroadcastReceiver:) 它完全满足您的需求,它是 Java / Pyjnius 中的实现,允许您在 Python 中接收结果。
注意,需要监听的动作需要用小写书写,不带
ACTION_
前缀。
您的应用程序的模型可能如下所示:
class TestApp(App):
def build(self):
self.br = BroadcastReceiver(
self.on_broadcast, actions=['found'])
self.br.start()
def on_broadcast(self, context, intent):
# called when a device in found
pass
# Don't forget to stop and restart the receiver when the app is going
# to pause / resume mode
def on_pause(self):
self.br.stop()
return True
def on_resume(self):
self.br.start()