Java 使用RFCOMM的Android蓝牙连接使用不安全的DONS';行不通

Java 使用RFCOMM的Android蓝牙连接使用不安全的DONS';行不通,java,android,sockets,bluetooth,rfcomm,Java,Android,Sockets,Bluetooth,Rfcomm,我使用蓝牙RFCOMM连接许多设备并在它们之间传输数据,以不安全的方式使用RFCOMM套接字,所以在连接之前我不需要配对 问题是,我得到了一个用于连接的每个设备的线程使用的设备列表,在连接发送一个字符串数据后,它会连接,但数据传输不会一直发生 对于连接,我需要使用UUID,UUID应该在所有设备上都是通用的,并且每次我在新运行时都需要更改它 我使用了谷歌蓝牙聊天的相同代码 private final Handler mHandler=new Handler(){ @凌驾 公共无效handleMe

我使用蓝牙RFCOMM连接许多设备并在它们之间传输数据,以不安全的方式使用RFCOMM套接字,所以在连接之前我不需要配对

问题是,我得到了一个用于连接的每个设备的线程使用的设备列表,在连接发送一个字符串数据后,它会连接,但数据传输不会一直发生

对于连接,我需要使用UUID,UUID应该在所有设备上都是通用的,并且每次我在新运行时都需要更改它

我使用了谷歌蓝牙聊天的相同代码

private final Handler mHandler=new Handler(){
@凌驾
公共无效handleMessage(消息消息消息){
开关(msg.what){
case Constants.MESSAGE\u STATE\u CHANGE:
开关(消息arg1){
案例BluetoothDataService.STATE\u已连接:
sen();//连接am发送消息后
打破
案例BluetoothDataService.STATE\u正在连接:
showToast(“连接”);
打破
case BluetoothDataService.STATE\u侦听:
展示土司(“聆听”);
打破
案例BluetoothDataService.STATE\u无:
//设置状态(R.string.title\u未连接);
showToast(“未连接”);
打破
}
打破
case Constants.MESSAGE_读取:
字节[]readBuf=(字节[])msg.obj;
String readMessage=新字符串(readBuf,0,msg.arg1);
tv2.setText(readMessage);//从发件人处获取消息并在textview中打印。
打破
case Constants.MESSAGE\u设备\u名称:
//保存所连接设备的名称
字符串mConnectedDeviceName=msg.getData().getString(常量.设备名称);
showToast(“连接到-”+mConnectedDeviceName);
sen();
if(flag){//用于连接设备列表中的下一个设备的处理程序
handler.postDelayed(新的Runnable(){
@凌驾
公开募捐{
val++;
Log.e(“type++”,String.valueOf(val));
//mBlueDataService.stop();
}
}, 5000);
}
如果(标志和温度>1){
nextDevice.postDelayed(新的Runnable(){
@凌驾
公开募捐{
//mBlueDataService.start();
如果(val
   private final Handler mHandler = new Handler() {
    @Override
    public void handleMessage(Message msg) {

        switch (msg.what) {
            case Constants.MESSAGE_STATE_CHANGE:
                switch (msg.arg1) {
                    case BluetoothDataService.STATE_CONNECTED:

                        sen();  //After connecting am sending messaage
                        break;
                    case BluetoothDataService.STATE_CONNECTING:

                        showToast("connecting");
                        break;
                    case BluetoothDataService.STATE_LISTEN:
                        showToast("Listenining");
                        break;

                    case BluetoothDataService.STATE_NONE:
                        //setStatus(R.string.title_not_connected);
                        showToast("not connected");
                        break;
                }
                break;

            case Constants.MESSAGE_READ:
                byte[] readBuf = (byte[]) msg.obj;
                String readMessage = new String(readBuf, 0, msg.arg1);
                tv2.setText(readMessage); //getting the message from sender and printing it in textview.


                break;
            case Constants.MESSAGE_DEVICE_NAME:
                // save the connected device's name
               String mConnectedDeviceName = msg.getData().getString(Constants.DEVICE_NAME);
                showToast("connected to -"+mConnectedDeviceName);
                sen();
                if(flag) {   // used handler for connecting next deivces in the list of devices 
                    handler.postDelayed(new Runnable() {  
                        @Override
                        public void run() {

                            val++;
                            Log.e("type++",String.valueOf(val));
                          //  mBlueDataService.stop();
                        }
                    }, 5000);

                }
                if(flag && temp>1) {
                    nextDevice.postDelayed(new Runnable() {
                        @Override
                        public void run() {

                                 //   mBlueDataService.start();
                            if (val <= (temp - 1)) {
                                Log.e("type", "" + String.valueOf(val) + "--" + String.valueOf(temp)+"---"+mDeviceList.size());
                                try {
                                    connectDevice(mDeviceList.get(val));
                                } catch (Exception e) {
                                    Log.e("type=",e.getStackTrace().toString());
                                    e.printStackTrace();
                                }
                            }
                        }
                    }, 7000);
                }



                break;

        }
    }
};