onServicesDiscovered给出'方法不覆盖其超类的方法'错误

时间:2017-04-20 16:06:06

标签: java android bluetooth-lowenergy

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

@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));
}

1 个答案:

答案 0 :(得分:1)

  

我已经在我的课程中编写了这个方法,这里是类标题。公共类A1扩展AppCompatActivity实现View.OnClickListener,AdapterView.OnItemClickListener

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

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

class MyCallback extends BluetoothGattCallback {
   // your code here
}

然后使用MyCallback的实例。