代码仅在第一次正常工作,如果我试图再次连接它,它会抛出此异常:
读取失败,套接字可能已关闭或超时,读取重试:-1
这是我连接蓝牙打印机的功能:
public boolean openBT(Context context) throws IOException {
try {
// Standard SerialPortService ID
UUID uuid = UUID.fromString("00001101-0000-1000-8000-00805f9b34fb");
mmSocket = mmDevice.createRfcommSocketToServiceRecord(uuid);
mBluetoothAdapter.cancelDiscovery();
mmSocket.connect();
mmOutputStream = new DataOutputStream(mmSocket.getOutputStream());
mmInputStream = new DataInputStream(mmSocket.getInputStream());
} catch (NullPointerException e) {
e.printStackTrace();
return false;
} catch (Exception e) {
e.printStackTrace();
return false;
}
return true;
}
检查您的UUID,如果您不知道UUID,请尝试以下操作:
UUID uuidSting = null;
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.ICE_CREAM_SANDWICH_MR1) {
uuidSting = bluetoothDevice.getUuids()[0].getUuid();
}
而是使用:
UUID uuid = UUID.fromString("00001101-0000-1000-8000-00805f9b34fb");
使用后应关闭插座:
public boolean openBT(Context context) throws IOException {
try {
// Standard SerialPortService ID
UUID uuid = UUID.fromString("00001101-0000-1000-8000-00805f9b34fb");
mmSocket = mmDevice.createRfcommSocketToServiceRecord(uuid);
mBluetoothAdapter.cancelDiscovery();
mmSocket.connect();
mmOutputStream = new DataOutputStream(mmSocket.getOutputStream());
mmInputStream = new DataInputStream(mmSocket.getInputStream());
mmSocket.close(); //Socket closed
} catch (NullPointerException e) {
e.printStackTrace();
return false;
} catch (Exception e) {
e.printStackTrace();
return false;
}
return true;}
我在Android蓝牙API中连接客户端套接字时遇到问题。我已经读过这些帖子了:这篇,这篇,这篇,还有这篇。根据这些帖子,我编写了如下代码,但仍然不起作用: 下面是包含套接字上返回的错误的日志。connect(): 问题似乎出现在Android4.3之后,因为我在Android7.1和8.1上使用的套接字的端口值。有人知道如何在Android上使用蓝牙吗?
我想把我的Android设备(Android4.2.2)与BluetothAdapter创建的另一个Android设备配对。startDiscovery()。我在运行BluetoothDevice时发现了什么。connect()请求配对开始。但我在运行connect()时遇到了问题 我在中尝试了impliment fallback和gatclass方法 IOException:读取失败,套接字可能
问题内容: 我试图呼吁一个非常繁重的过程。平均工作时间估计为9-10分钟。 当我执行该过程时,我为一个巨大的数字设置了超时时间:99999999。 2分钟后,出现以下错误: java.net.SocketTimeoutException:读取超时 我尝试对其进行更多处理,并将超时设置为3000,并且在预期的3秒钟后出现了相同的错误。 您对为什么将其设置为最大120000 有任何想法吗? 问题答案:
我有一个应用程序,打印数据(文本和图像)到热敏打印机。 我的问题是,每当我打印冗长的数据时,打印输出就会被剪切,我会在打印的try-catch语句中抛出一个。 以下是我打印数据的部分: 这是我的打印签名功能,它类似于我用来打印徽标的功能。 ConvertBitmap函数: convertArgbToGrayScale函数: 我现在的问题是,在调用printSignature()函数后,打印机停止打
我已经开发了一个android应用程序来从蓝牙打印机打印账单,我的代码抛出的异常是“java.lang.NullPointerException:试图在空对象引用上调用虚拟方法'void java.io.OutputStream.write(byte[])”。 连接蓝牙打印机并发送数据进行打印的代码如下: //这将找到一个蓝牙打印机设备 //打印数据的代码
我正在开发通过蓝牙与打印机连接并打印一些文本的应用程序。我可以通过蓝牙连接打印机,然后从BluetoothSocket获取输出流并写一些文本。但它不会用打印机打印任何东西...我仔细检查过,没有例外。请帮帮我我在代码中做错了什么???我使用佳能MX430打印机进行测试...这是我的代码