gpt4 book ai didi

java - 必须为 Android 上的蓝牙连接选择哪个 UUID

转载 作者:太空狗 更新时间:2023-10-29 14:46:01 28 4
gpt4 key购买 nike

目前我正在开发一个新的 Android 应用程序。该应用程序需要蓝牙。每次我想通过服务器套接字/套接字系统连接两个(配对的)设备时,我都无法创建工作套接字。它总是返回:

java.io.IOException: read failed, socket might closed or timeout, read ret: -1

所以我的问题是:我使用的 UUID 是否无效?如果不是这样的话。您还有其他建议吗?

public Accept(BluetoothAdapter bt, BluetoothDevice device, Context context) {
try {
BluetoothAdapter.getDefaultAdapter().cancelDiscovery();
BluetoothServerSocket tmp = null;
try {
UUID uuid = UUID.fromString("00001101-0000-1000-8000-00294F9B3423");
//Here is the point when it doesn't work...
tmp = bt.listenUsingRfcommWithServiceRecord(context.getResources().getString(R.string.bt_string_for_profile_image), uuid);
} catch (Exception e) {
}
mmServerSocket = tmp;

bt_device = device;
} catch (Exception e) {
}
}

提前感谢您的帮助。

最佳答案

我认为您在这里缺少接受声明。听完你的下一条语句应该是 tmp.accept()。这将解决您的问题。因此,您的代码应如下所示:

    try { 
UUID uuid = UUID.fromString("00001101-0000-1000-8000-00294F9B3423");
Bluetoothsocket clientSocket;
//Here is the point when it doesn't work...
tmp = bt.listenUsingRfcommWithServiceRecord(context.getResources().getString(R.string.bt_string_for_profile_image), uuid);
clientSocket = tmp.accept();
}

另外,这里要注意一件事,接受函数调用是阻塞代码。

希望这对您有所帮助。

关于java - 必须为 Android 上的蓝牙连接选择哪个 UUID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40192528/

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