我的Android应用程序需要连接到蓝牙打印机(Zebra Bt打印机)才能打印票证,此打印机 不需要身份验证(设置身份验证:关闭) ,但我无法与它建立连接,因为应用程序要求通过输入一个引脚进行配对,我尝试过默认值,如0000和1234,但其中任何一个都有效。
这是我用来与打印机建立连接的代码:
Set<BluetoothDevice> devices = bluetoothAdapter.getBondedDevices();
for (BluetoothDevice device : devices) {
if (device.getAddress().equals(PRINTER_DEVICE_MAC_ADDRESS)) {
bluetoothDevice = bluetoothAdapter.getRemoteDevice(PRINTER_DEVICE_MAC_ADDRESS);
if (bluetoothDevice != null) {
try {
clientSocket = bluetoothDevice.createRfcommSocketToServiceRecord(uuid);
clientSocket.connect();
} catch (IOException e) {
e.printStackTrace();
}
}
}
执行以下行时:
clientSocket.connect();
是用于输入引脚以与设备建立连接的对话框,但我不知道要输入什么代码或如何避免此对话框。
- 我在Android 4.1.2上使用Galaxy Tab 3 - 在Api 14开发
答案 0 :(得分:1)
Zebra提供适用于其打印机的Android SDK。具体来说,有一个BluetoothConnectionInsecure类,允许您连接到您的打印机,而无需提供配对信息:http://www.zebra.com/us/en/products-services/software/link-os/link-os-sdk.html。完整示例包含在JavaDoc中。
如果您不能使用SDK,那么BitBank建议使用CreateInsecureRfCommSocket()是一个不错的选择。以下是一些有关其用法的文章: