gpt4 book ai didi

Android:在没有 BluetoothManagerCallback 的情况下调用了 getBluetoothService()

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

我正在尝试将我的 Nexus 4 与 Wii 平衡板连接,但出现此错误:

getBluetoothService() called with no BluetoothManagerCallback
connect(), SocketState: INIT, mPfd: null

所以它没有完成连接。

我的套接字:

public final class wSocket
{
public static BluetoothSocket create(BluetoothDevice dev, int port)
{
try {
/*
* BluetoothSocket(int type, int fd, boolean auth, boolean encrypt, BluetoothDevice device, int port, ParcelUuid uuid)
*/
Constructor<BluetoothSocket> construct = BluetoothSocket.class.getDeclaredConstructor(int.class, int.class, boolean.class,
boolean.class, BluetoothDevice.class, int.class, ParcelUuid.class);

construct.setAccessible(true);
return construct.newInstance(3 /* TYPE_L2CAP */, -1, false, false, dev, port, null);
} catch (Exception ex) {
return null;
}
}
}

它给我错误的地方:

private BluetoothSocket sk;
...
sk = wSocket.create(wm.dev, 0x11);
...
sk.connect();

我检查了这个链接但没有成功,因为我只打开了 1 个套接字: getbluetoothservice() called with no bluetoothmanagercallback

有什么需要探索的帮助或想法吗?

最佳答案

尝试在创建套接字对象之前通过 getDefaultAdapter() 获取 BluetoothAdapter。似乎在上述调用采用对 BLuetoothAdater 的引用时创建了回调服务。详情: https://android.googlesource.com/platform/frameworks/base/+/master/core/java/android/bluetooth/BluetoothAdapter.java

其中 mService = managerService.registerAdapter(mManagerCallback); 在调用 getDefaultAdapter 时加载值。

对于 socket connect(),getBluetoothService() 参数始终为 null,请参见下面的代码:

https://android.googlesource.com/platform/frameworks/base/+/master/core/java/android/bluetooth/BluetoothSocket.java

附注谷歌似乎没有直接宣传使用 BluetoothSocket 构造函数并要求使用 BluetoothDevice 的方法来创建套接字。(来自谷歌网站上的引用)我不知道背后的原因。

关于Android:在没有 BluetoothManagerCallback 的情况下调用了 getBluetoothService(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17304479/

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