首页 > 解决方案 > ANDROID 无法连接蓝牙:读取失败,套接字可能关闭或超时,读取 ret:-1

问题描述

我很想在我的智能手机和我的 arduino 之间建立连接。我正在尝试为发送 int 值创建一个 OutputStream,但我收到此错误:java.io.IOException: read failed, socket might closed or timeout, read ret: -1

我的代码有什么问题?难道和UUID有问题?UUID 是 0000110E-0000-1000-8000-00805F9B34FB ,我在stackoverflow上发现

    private boolean connectBt() {
    bluetoothAdapter=BluetoothAdapter.getDefaultAdapter();
    bluetoothDevice= bluetoothAdapter.getRemoteDevice(address);
        try {
          socket=bluetoothDevice.createRfcommSocketToServiceRecord(mUUID);
            //socket =(BluetoothSocket) bluetoothDevice.getClass().getMethod("createRfcommSocketToServiceRecord", new Class[] {int.class}).invoke(bluetoothDevice,1);
          socket.connect();
            if(socket.isConnected()){
                try {
                    outputStream=socket.getOutputStream();
                    return true;
                } catch (IOException e) {
                    Log.e("bterr", "ErrORE:" + e.getMessage());
                }
            }
        } catch (Exception e) {
            Log.e("bterr","Errore:"+e.getMessage());
            Toast.makeText(this, "Err:"+e.getMessage(), Toast.LENGTH_LONG).show();
        }
return  false;
}

}

标签: javaandroidsocketsbluetoothuuid

解决方案


推荐阅读