Я пытаюсь распечатать на принтере HP DeskJet 450 Вт с моего телефона T-Mobile Pulse Mini, используя Android Bluetooth API.Код, как показано ниже.Сбой соединения с «Обнаружение службы не удалось».Если я попробую альтернативный метод создания сокета, упомянутый в ряде других потоков, я получу вместо этого сообщение "Host is down".
Я думаю, что UUID для BPP правильный, но я не уверен.Принтер является сопряженным устройством, и он включен.Я не могу найти драйвер USB для своего телефона (под маркой Huawei 8110), поэтому я не смог отладить устройство или посмотреть журнал.Я застрял в этой точке, и я был бы благодарен за любой совет.
Вот краткий обзор моего кода:
final String UUID_BPP = "00001122-0000-1000-8000-00805F9B34FB";
final String printerName = "dj450 S/N SG..."; // name of paired printer
BluetoothAdapter bluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
if (bluetoothAdapter == null) {
return 2; // phone does not support Bluetooth
}
if (!bluetoothAdapter.isEnabled()) {
return 3; // Bluetooth has not been enabled
}
Set<BluetoothDevice> pairedDevices = bluetoothAdapter.getBondedDevices();
// Loop through paired devices
BluetoothDevice printer = null;
for (BluetoothDevice device : pairedDevices) {
String s = device.getName();
if (s.equals(printerName)) {
printer = device;
break;
}
}
if (printer == null)
return 4; // Paired printer not found
// create socket
UUID BPP = UUID.fromString(UUID_BPP);
BluetoothSocket socket;
try {
socket = printer.createRfcommSocketToServiceRecord(BPP);
} catch (IOException e) {
return 5; // Unable to create socket
}
/*
try {
Method m = printer.getClass().getMethod("createRfcommSocket",
new Class[] { int.class });
socket = (BluetoothSocket) m.invoke(printer, 1);
} catch (Exception e1) {
return 5; // Unable to create socket
}
*/
try {
socket.connect();
} catch (IOException e) {
return 6; // Unable to connect socket
}