如何向蓝牙设备发送消息?

时间:2011-04-04 19:56:31

标签: java-me bluetooth sms

在j2me中使用蓝牙API,我想向另一部手机发送消息。我已经能够在相应的设备上发现设备和服务。当我尝试从服务器向客户端发送消息时,我也能够连接到服务。邮件已写入,但客户端似乎没有收到它..

    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 个答案:

答案 0 :(得分:1)

尝试将new UUID("1101", false);替换为new UUID(0x1101);

相关问题