我尝试在三星 Galaxy Gio 上创建 BluetoothServerSocket。
mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
BluetoothServerSocket tmp = null;
try
{
tmp = mBluetoothAdapter.listenUsingRfcommWithServiceRecord(NAME_INSECURE, MY_UUID_INSECURE);
}
catch (IOException e)
{
}
mmServerSocket = tmp;
当我不再需要使用套接字时,我只需将其关闭。
public void cancel()
{
try
{
mmServerSocket.close();
}
catch (IOException e)
{
}
}
在这两种情况下,都不会抛出异常。所以我的问题是。当我再次尝试使用第一个代码时(不退出应用程序) Log cat 显示异常:
07-07 18:27:44.239: D/BluetoothSocket(13672): create BluetoothSocket: type = 1, fd =-1,
uuid = [null], port = 25
07-07 18:27:44.339: E/BLZ20_WRAPPER(13672): ##### ERROR : __listen_prot_rfcomm: failed
with reason 1#####
直到那时我才重新启动手机或 TurnOFF\wait\TurnOn 我的蓝牙。所以我认为问题在于 BluetoothServerSocket 创建了套接字,但他没有关闭它。也许我的先入之见是不对的,所以我想帮忙。