2012-12-13 20 views
7

Wdrażam jedną aplikację.Jak zrobić parę przez bluetooth do drukarki zebra mz320?

Na podstawie moich wymagań, chcę pobrać wydruk z drukarki zebra mz320 przez mobilny bluetooth.

Staram się zrobić parę z mobile bluetooth do printer bluetoth.

Kiedy próbuję skojarzyć, że drukarka wyrzuca komunikat jak „typ 1234 lub 0000 pin do makijażu połączenia.

Wpisałem ten sam PIN

. Ale drukarka nie jest sparowany z urządzeniem mobilnym.

zgłasza wyjątek jak com.zebra.android.comm.ZebraPrinterConnectionException: Could not connect to printer: Unable to start Service Discovery

Jeśli ktoś zna rozwiązanie, pomóż mi.
Z góry dziękuję.

+0

mam ten sam problem. Znalazłeś rozwiązanie? –

+0

Musisz uzyskać identyfikator UUID drukarki. listenUsingRfcommWithServiceRecord (nazwa ciągu, UUID uuid) – SeahawksRdaBest

Odpowiedz

1

Lista UUID znajduje się pod adresem here. należy spróbować jednego lub wszystkich z tych fragmentów w kolejce, aby gra:

@TargetApi (10) prywatny BluetoothSocket connectDeviceUsingAPI10() throws IOException {

BluetoothSocket socket = null; 
IOException ioex = null; 
int port = 1; // may be from 1 to 14 if I'm not confused 
UUID SPP_UUID = UUID.fromString("00001101-0000-1000-8000-00805F9B34FB"); 

// way #0. Connect using workaround for Android < 2.3 
try { 
    if (!isThreadActive) 
     return null; 
    Log.d("Try via API10: createInsecureRfcommSocketToServiceRecord"); 
    socket = mDevice.createInsecureRfcommSocketToServiceRecord(SPP_UUID); // or RFCOMM_UUID); 
    } catch (IOException e) { ioex = e; } 
     if (socket != null && ioex == null) { 
      try { 
       socket.connect(); 
       setStreams(socket.getOutputStream(), socket.getInputStream()); 
      } catch (IOException ex) { 
       ioex = ex; 
       try { 
        socket.close(); 
       } catch (IOException e) { 
       } finally { 
        socket = null; 
       } 
      } 
     } 
     if (socket != null && ioex == null) { 
      return socket; 

     } 

     ioex = null; 
     socket = null; 
     // way #1. Using standard secure connection procedure via UUID 
     try { 
      if (!isThreadActive) 
       return null; 
      Log.d("Try via API10: createRfcommSocketToServiceRecord"); 
      socket = mDevice 
        .createRfcommSocketToServiceRecord(SPP_UUID);// or RFCOMM_UUID 
     } catch (IOException e) { 
      ioex = e; 
     } 
     if (socket != null && ioex == null) { 
      try { 
       socket.connect(); 
       setStreams(socket.getOutputStream(), socket.getInputStream()); 
      } catch (IOException ex) { 
       ioex = ex; 
       try { 
        socket.close(); 
       } catch (IOException e) { 
       } finally { 
        socket = null; 
       } 
      } 
     } 
     if (socket != null && ioex == null) { 
      return socket; 
     } 

     // way #2. Using hidden api procedure with insecure socket 
     socket = null; 
     ioex = null; 
     // Try to fallback to API5 method 
     try { 
      if (!isThreadActive) 
       return null; 
      Log.d("Try via API10: createInsecureRfcommSocket"); 
      Method m = mDevice.getClass().getMethod(
        "createInsecureRfcommSocket", new Class[] { int.class }); 
      socket = (BluetoothSocket) m.invoke(mDevice, Integer.valueOf(port)); 
     } catch (IOException e) { // ... } 
     if (socket != null && ioex == null) { 
      try { 
       socket.connect(); 
       setStreams(socket.getOutputStream(), socket.getInputStream()); 
      } catch (IOException ex) { 
       ioex = ex; 
       try { 
        socket.close(); 
       } catch (IOException e) { 
       } finally { 
        socket = null; 
       } 
      } 
     } 

     if (socket != null && ioex == null) { 
      return socket; 
     } 

     ioex = null; 
     socket = null; 
     // way #3. Connect using workaround for Android < 2.3 
     try { 
      if (!isThreadActive) 
       return null; 
      Log.d("Try via API10: createRfcommSocket"); 
      Method m = mDevice.getClass().getMethod("createRfcommSocket", 
        new Class[] { int.class }); 
      socket = (BluetoothSocket) m.invoke(mDevice, Integer.valueOf(port)); 
     } catch (IOException e) { 
       ioex = e; 
     } 
     if (socket != null && ioex == null) { 
      try { 
       socket.connect(); 
       setStreams(socket.getOutputStream(), socket.getInputStream()); 
      } catch (IOException ex) { 
       ioex = ex; 
       try { 
        socket.close(); 
       } catch (IOException e) { 
       } finally { 
        socket = null; 
       } 
      } 
     } 
     if (socket != null && ioex == null) { 
      return socket; 
     } 
     return socket; 
    } 
Powiązane problemy