“java.io.ioexception:read failed,socket may closed or timeout,read ret:-1”当我尝试通过蓝牙将android设备与zebra zd410打印机连接时出现异常。
try {
mmSocket.connect();
} catch (IOException e1) {
android.util.Log.e(TAG, e1.toString());
try {
android.util.Log.i(TAG, "Trying fallback...");
mmSocket =(BluetoothSocket) mmDevice.getClass().getMethod("createRfcommSocket", new Class[] {int.class}).invoke(mmDevice,1);
mmSocket.connect();
android.util.Log.i(TAG, "Connected");
} catch (Exception e2) {
android.util.Log.e(TAG, "Couldn't establish Bluetooth connection!");
try {
mmSocket.close();
} catch (IOException e3) {
android.util.Log.e(TAG, "unable to close() " + mSocketType + " socket during connection failure", e3);
}
connectionFailed();
return;
}
}
我已经尝试了回退套接字连接的解决方案,但没有帮助。此代码适用于epson打印机和其他一些设备,但不适用于zebra zd410打印机。原因是什么?
1条答案
按热度按时间bqjvbblv1#
我收到了斑马队的回复。我的zebra打印机只支持蓝牙le,解决方案是使用具有蓝牙经典功能的打印机。
zd410的SKU表示仅蓝牙le打印机是zd4x $x,其中$是e、f、m或s。对于android设备而言,蓝牙le不是连接打印机并打印到打印机的足够连接。为了能够从android设备通过蓝牙连接和打印,打印机需要蓝牙经典功能。zd410的SKU表示除蓝牙le之外的蓝牙经典功能是zd4x $x,其中$是a、b、l或w。