有没有办法在应用程序启动时通过蓝牙le自动连接特定设备?
在过去的几个小时里,我一直在浏览stack overflow,看到了许多类似的问题,尽管大多数问题都已经过时了,并且涉及到反射或其他我不太理解的复杂方法(这些方法我已经尝试过实现,但没有成功,因为我不太了解到底发生了什么)。
到目前为止,我已经成功地找到了设备的友好名称,尽管我不知道该在if语句中执行什么。这是我的主要活动:
protected void onCreate(Bundle savedInstanceState) {
...
if (bluetoothAdapter == null) {
Toast.makeText(getApplicationContext(),"Bluetooth not supported",Toast.LENGTH_SHORT).show();
} else {
Set<BluetoothDevice> pairedDevices = bluetoothAdapter.getBondedDevices();
if(pairedDevices.size()>0){
for(BluetoothDevice device: pairedDevices){
if (deviceName.equals(device.getName())) {
//Device found!
//Now how do I pair it?
break;
}
...
2条答案
按热度按时间kqlmhetl1#
最后浏览了这个应用程序的源代码,特别是serialsocket、serialservice和seriallistener文件,这些文件彻底解决了我的问题。
ve7v8dk22#
假设你已经成功识别了
BlueToothDevice
,您现在需要连接到gatt(generic attribute profile),它允许您传输数据。使用
BlueToothDevice.connectGatt
方法。使用第一个重载,该方法接受Context
,布尔值(false=直接连接,true=连接(如果可用),以及BlueToothGhattCallback
. 回调从设备接收信息。实现回调的示例:
更多关于回调的细节。