是否可以在连接到 ble 设备时启动 service/activity?

Is it possible to start service/activity when connect to ble device?

我正在使用 BLE 开发 android 应用程序。

我的蓝牙设备可以通过android的蓝牙扫描搜索到。

我的应用程序可以通过 connectGatt()

与蓝牙设备连接

当我的应用程序 运行(即使只有前台服务 运行)时,连接会继续。 (我用的是autoConnect=true

但即使我的应用程序不是 运行,我希望 Android OS 如果找到我的蓝牙设备并启动前台服务或 activity 会尝试连接我的申请。

这可能吗?

在AndroidOS找到的蓝牙设备列表window中,可以找到我的蓝牙设备。但是,如果我触摸它,他们会立即说“需要一个应用程序才能使用此设备”。

请告诉我如何让 Android OS 尝试连接我的蓝牙设备,即使我的应用程序是否 运行。

不,Android 由于已建立 BLE 连接,因此不会启动应用程序(新进程)。 connectGatt 尝试仅在应用进程运行时有效。

但是,您可以在没有应用 运行 的情况下扫描设备,请参阅 https://developer.android.com/reference/android/bluetooth/le/BluetoothLeScanner#startScan(java.util.List%3Candroid.bluetooth.le.ScanFilter%3E,%20android.bluetooth.le.ScanSettings,%20android.app.PendingIntent)