gpt4 book ai didi

java - onServicesDiscovered 给出 'Method does not override method from its super class' 错误

转载 作者:行者123 更新时间:2023-12-02 13:22:05 26 4
gpt4 key购买 nike

enter image description here我正在研究低功耗蓝牙,我已将蓝牙设备连接到我的 Android,但是当我尝试发现其服务并通过覆盖它来实现 onServicesDiscovered 时。它给我语法错误,方法不会覆盖其父类(super class)中的方法。我在谷歌和堆栈上搜索它但找不到任何合适的解决方案。请帮助我。期待中感谢。这是我的代码和错误的屏幕截图。

@Override
public void onServicesDiscovered(BluetoothGatt gatt, int status) {

List<BluetoothGattService> services = gatt.getServices();
Log.i("onServicesDiscovered", services.toString());
gatt.readCharacteristic(services.get(1).getCharacteristics().get
(0));
}

最佳答案

I have written this method in my class and here is the class header. public class A1 extends AppCompatActivity implements View.OnClickListener, AdapterView.OnItemClickListener

这是错误的。 onServicesDiscovered() 是抽象 BluetoothGattCallback 的方法类(class)。因此,您的 @Override 告诉编译器此方法会覆盖父级的方法,但您没有扩展 BluetoothGattCallback 所以这会引发错误。

您是蹩脚教程的最大受害者,其中作者不关心隔离元素,即让 Activity 实现所有接口(interface)和监听器,而不是将它们分开。作为解决方案,您必须重新编写代码并扩展 BluetoothGattCallback 或放弃不良做法并分离回调,即通过创建内部类:

class MyCallback extends BluetoothGattCallback {
// your code here
}

然后使用MyCallback实例。

关于java - onServicesDiscovered 给出 'Method does not override method from its super class' 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43524634/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com