Как отправить сообщение на устройство Bluetooth? - PullRequest
0 голосов
/ 04 апреля 2011

Используя bluetooth API в j2me, я хочу отправить сообщение на другой мобильный телефон. Мне удалось обнаружить устройства и услуги на соответствующих устройствах. Однако я также смог подключиться к сервисам, когда я пытаюсь отправить сообщение с сервера клиенту. Сообщение написано, но клиент, похоже, его не получает ..

    public void startServer() throws IOException {
                UUID uuid = new UUID("1101", false);
                //Create the service url
                String connectionString = "btspp://localhost:" + uuid + ";name=xyz";
                //open server url
                StreamConnectionNotifier streamConnNotifier = (StreamConnectionNotifier) Connector.open(connectionString);
                //Wait for client connection
                System.out.println("\nServer Started. Waiting for clients to connect...");
                StreamConnection connection = streamConnNotifier.acceptAndOpen();
                RemoteDevice dev = RemoteDevice.getRemoteDevice(connection);
                System.out.println("Remote device address: " + dev.getBluetoothAddress());
                System.out.println("Remote device name: " + dev.getFriendlyName(true));
                Survey.setTitle(dev.getFriendlyName(true));
                //read string from spp client
                try {
                      DataInputStream in =  connection.openDataInputStream();
                      OutputStream writer=connection.openDataOutputStream();


                      String str="";
                        TextField  textfield;
                        for (int i=0;i<questions.size();i++){
                            textfield = (TextField) questions.elementAt(i);
                            str += formatSurvey(textfield,i)+"&";

                        }
                     writer.write(str.getBytes(), 0, str.getBytes().length);
                     writer.flush();
                    System.out.println("Written to client "+str);

                    System.out.println("Reading  "+in.readUTF());
                    try {
                        displaySurveyresults(str);
                    }
                    catch(Exception e){
                        System.out.println(e.getMessage());
                    }
                      streamConnNotifier.close();
                }
                catch(Exception e){
                    System.err.println(e.getMessage());
                }
          }



     public void servicesDiscovered(int transID, ServiceRecord[] servRecord) {
            switchDisplayable(null , getList1());
            list1.append(servRecord.toString(), null);
            System.out.println("Service discovered..."+servRecord.toString());
            for (int i=0;i<servRecord.length;i++){
                try {
                    System.out.println("Test1");
                    //StreamConnection con = (StreamConnection) Connector.open(servRecord[i].getConnectionURL(0 , false));
                    String connURL = servRecord[0].getConnectionURL(ServiceRecord.NOAUTHENTICATE_NOENCRYPT, false);
                    // Open connection
                    StreamConnection con = (StreamConnection) Connector.open(connURL);

                    System.out.println("Test2");
                    DataInputStream in =  con.openDataInputStream();
                    System.out.println("Test3"+in.readUTF());
                    //con.openDataOutputStream().write(142);
                    System.out.println("Test4   "+in.available());
                    byte[] bte=new byte[in.available()];
                    System.out.println("Test5  "+bte.length);
                    in.read(bte);
                    System.out.println("Test6");
                    for (int l=0;l<bte.length;l++){
                        System.out.println(bte[i]);
                        System.out.println("Test7");
                        stringItem.setText(stringItem.getText()+1 + bte[i]);
                    }
                    OutputStream outStream=con.openOutputStream();
                    OutputStreamWriter writer = new OutputStreamWriter(outStream);
                    writer.write("Vimal");
                } catch (IOException ex) {
                    ex.printStackTrace();
                }

            }
}

я где-то ошибся, потому что это коды из Сети?

1 Ответ

1 голос
/ 05 апреля 2011

Попробуйте заменить new UUID("1101", false); на new UUID(0x1101);.

...