Android-BluetoothKit icon indicating copy to clipboard operation
Android-BluetoothKit copied to clipboard

Android BLE蓝牙通信库

Results 114 Android-BluetoothKit issues
Sort by recently updated
recently updated
newest added

实践证明该开源项目是方便易用的。但是我们可以看到它存在大量Logcat信息干扰了我们原本的日志。但是该项目并未提供API去关闭日志。 然而这并不是不可解决的。 幸运的是作者使用了优秀的设计模式,能够使我们能轻易的定制自己的`BluetoothClient` ,我们仅需如作者一般,定义一个`MyBluetoothClient` 类并实现`IBluetoothClient`, 并使用其代理类`BluetoothClientImpl` 代理其实现方法。即可过滤这些日志信息。 或直接使用` BluetoothClientImpl.getInstance(context);`获取一个`IBluetoothClient`亦可。

你好,我使用下面的连接方法,但是一直是配对成功,并没有连接成功,应该怎么处理才能跟系统蓝牙一样 BleConnectOptions options = new BleConnectOptions.Builder() .setConnectRetry(3) // 连接如果失败重试3次 .setConnectTimeout(30000) // 连接超时30s .setServiceDiscoverRetry(3) // 发现服务如果失败重试3次 .setServiceDiscoverTimeout(20000) // 发现服务超时20s .build(); mClient.connect(MAC, options, new BleConnectResponse() { @Override public void onResponse(int code, BleGattProfile...

BleNotifyResponse的onResponse方法有时会返回非0 提示BleNotifyResponsefailed 这是什么原因

BLE单次写的数据量大小是有限制的,通常是20字节,可以尝试通过requestMTU增大,但不保证能成功。分包写是一种解决方案,需要定义分包协议,假设每个包大小20字节,分两种包,数据包和非数据包。对于数据包,头两个字节表示包的序号,剩下的都填充数据。对于非数据包,主要是发送一些控制信息。 总体流程如下: 1、发端发送控制包,告诉对方要发送的总的包数 2、收端回一个ACK包,表示准备好了,对方可以发送了 3、发端开始批量发送数据,为了速度,不需要对端回复 4、收端收到最后一个包或超时后,开始检查还缺哪些包,然后回复ACK,带上丢的包序号 5、发端重发丢的包 6、收端全部收到,回复ACK,CRC校验,包数据拼接好了传到上层 这里面核心是状态机,另外要注意对于BLE来说,主端和从端都可以收发数据,但是是非对称的。对主端来说,发是write characteristic,收是onCharacteristicChanged,对从端来说,发是sendNotify,收是onCharacteristicWrite。尽管如此,但是协议部分是相同的,所以我们要抽象成两层,底层是收发的物理层,上层是分包的协议层,再上层就是业务层。 具体代码可参考[Channel.java](https://github.com/dingjikerbo/BluetoothKit/blob/master/library/src/main/java/com/inuker/bluetooth/library/channel/Channel.java)

能否支持蓝牙外围设备(server端)?

log ``` java.lang.RuntimeException:android.os.DeadSystemException -- 2 android.app.ApplicationPackageManager.hasSystemFeature(ApplicationPackageManager.java:501) 3 ...... 4 Caused by: 5 android.os.DeadSystemException: 6 android.app.ApplicationPackageManager.hasSystemFeature(ApplicationPackageManager.java:501) 7 android.app.ApplicationPackageManager.hasSystemFeature(ApplicationPackageManager.java:493) 8 com.inuker.bluetooth.library.utils.BluetoothUtils.isBleSupported(BluetoothUtils.java:80) 9 com.inuker.bluetooth.library.connect.request.BleRequest.process(BleRequest.java:156) 10 com.inuker.bluetooth.library.connect.BleConnectDispatcher.scheduleNextRequest(BleConnectDispatcher.java:203) 11 com.inuker.bluetooth.library.connect.BleConnectDispatcher.handleMessage(BleConnectDispatcher.java:218) 12 android.os.Handler.dispatchMessage(Handler.java:98) ```