android 新的“onCharacteristicRead”方法无效

k2arahey  于 2023-03-21  发布在  Android
关注(0)|答案(2)|浏览(293)

经过一段令人尴尬的时间,我刚刚发现,新的推荐接收器为onCharacteristicReadBluetoothGattCallback中看到的Android开发人员参考:

public void onCharacteristicRead (BluetoothGatt gatt, 
                BluetoothGattCharacteristic characteristic, 
                byte[] value, 
                int status)

当我在服务上调用readCharacteristic时,没有收到任何数据,但是,被弃用的那个(Google Developers)确实收到了回调。
我一直在遵循官方指南中的所有步骤,但试图实现新方法,这是迄今为止唯一一个在“新回调”中不起作用的方法。
有什么想法可以解决这个问题吗?我会使用不赞成的方法,但这不是我所热衷的。提前感谢。

yqkkidmi

yqkkidmi1#

新的API仅在Android 13上可用。
所以

  • 确保您的手机运行Android 13
  • 在构建版本中设置“compileSdkVersion 33”。gradle
  • 在build.gradle中设置“targetSdkVersion 33”

在那之后,它应该起作用。至少对我来说...

slwdgvem

slwdgvem2#

使用compileSdk 33时会有一个分离-在Android 13上调用一个新函数,在Android 12及以下版本中调用一个Deprecated函数。要添加对旧Android版本的支持,只需将以下内容添加到代码中:

@Suppress("DEPRECATION")
@Deprecated("Used natively in Android 12 and lower")
override fun onCharacteristicRead(
    gatt: BluetoothGatt,
    characteristic: BluetoothGattCharacteristic,
    status: Int
) = onCharacteristicRead(gatt, characteristic, characteristic.value, status)

相关问题