android - Kivy 和发现蓝牙设备

标签 android bluetooth kivy

我在这里 ( https://gist.github.com/tito/7432757 ) 看到了如何使用 pyjnius 访问 java 类,使用 kivy 通过蓝牙连接。我想做的是发现新设备并使用 sdp 不安全地连接到它们。我不确定如何在 kivy 中接收 startDiscovery() 的结果。在 Java 中,你必须使用广播接收器。我是否也必须使用 pyjnius 从 android 访问广播接收器?

最佳答案

您错过了 BroadcastReceiver在 Python-for-android/android.broadcast 模块中 :) 它完全满足您的需求,它是 Java/Pyjnius 中的一个实现,允许您在 Python 中接收结果。

注意需要监听的 Action 需要用小写字母书写,不要加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()

关于android - Kivy 和发现蓝牙设备,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26317101/

相关文章:

java - Android 类标记为从未使用过

java - 可滚动弧形轮 查看

android - 返回时刷新 ViewModel 中的数据 - Android(Kotlin)

xcode - CoreBluetooth[WARNING] 没有恢复标识符,但委托(delegate)实现

python - 在kivy中通过id获取 child 并为其添加新标签

python - 如何在缩略图库中制作可点击的 kivy 图像

android - 动画不工作

java - 安卓 BLE。 device.getUUids() 总是返回 null

C++ 所有用于短信返回的 AT 命令的错误 | PC<->通过蓝牙和 winsocket 的移动连接

python - Kivy:无法更改嵌套 GridLayout 的高度