我在这里看到(https://gist.github.com/tito/7432757)如何使用pyjnius访问使用kivy通过蓝牙连接的java类。我想要做的是发现新设备并使用sdp不安全地连接到它们。我不确定如何在kivy中收到startDiscovery()
的结果。在java中,您必须使用广播接收器。我是否还必须使用pyjnius从Android访问广播接收器?
答案 0 :(得分:2)
你错过了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()