gpt4 book ai didi

android - 带有传输参数的 BluetoothDevice.ConnectGatt()

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:58:06 28 4
gpt4 key购买 nike

我刚开始使用 Android,并使用低功耗蓝牙在 Android Studio 中设置了一个 API 21 项目。

深入研究 BluetoothDevice 向我展示了 ConnectGatt() 方法的两个签名:

public BluetoothGatt connectGatt(Context context, boolean autoConnect,
BluetoothGattCallback callback)

public BluetoothGatt connectGatt(Context context, boolean autoConnect,
BluetoothGattCallback callback, int transport)

我想使用第二个,但构建失败:

Error:(127, 26) error: method connectGatt in class BluetoothDevice cannot be applied to given types; required: Context,boolean,BluetoothGattCallback found: Context,boolean,BluetoothGattCallback,int reason: actual and formal argument lists differ in length

编译器设置似乎与 Android Studio 中的源代码不匹配。

我该如何解决这个问题?

最佳答案

如果您想使用隐藏的 API,您可以调用您想要使用的方法。但是您必须牢记,隐藏的 API 可以随时更改。您必须自行承担使用它的风险。

这是一个如何使用隐藏的 connectGatt() 方法的示例代码。

        Method connectGattMethod;
BluetoothGatt connectGatt;

try {
connectGattMethod = device.getClass().getMethod("connectGatt", Context.class, boolean.class, BluetoothGattCallback.class, int.class);
} catch (NoSuchMethodException e) {
//NoSuchMethod
}

try {
connectGatt = (BluetoothGatt) connectGattMethod.invoke(device, this, false, mBluetoothGattCallback, 2); // (2 == LE, 1 == BR/EDR)
} catch (IllegalAccessException e) {
//IllegalAccessException
} catch (IllegalArgumentException e) {
//IllegalArgumentException
} catch (InvocationTargetException e) {
//InvocationTargetException
}

关于android - 带有传输参数的 BluetoothDevice.ConnectGatt(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27633680/

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