Синхронизация Bluetooth для изменения данных между двумя телефонами - PullRequest
0 голосов
/ 08 января 2019

Я передаю некоторые данные по Bluetooth между двумя телефонами, у меня есть часть синхронизации, и после этой синхронизации я хочу изменить данные между телефонами.

public void syncPhone1(){   // Phone1 function
    send("mes");
    if(readData.equal("mes:ok")){
    flag = true;
    }
}

public void syncPhone2(){ // Phone2 function
    if(readData.equal("mes")){
    send("mes");
    flag = true;
    }
}

Эта функция вызывается в функции runnable Handler с задержкой 100 мс

 final Handler handler = new Handler();
        Runnable runnable = new Runnable() {
            @Override
            public void run() {
                if (sync == false) {

                 syncPhone1();
                // syncPhone2();
                 sync =true;
                 }
                 if (flag == true) {

                 changeDataPhone1();
                 //changeDataPhone2();

                 }
  handler.postDelayed(this, 100);
            }
        };
        handler.postDelayed(runnable, 100);

После выполнения этой синхронизации flag = true я начинаю отправлять-получать некоторые данные В некоторых случаях flag устанавливается true только для Phone2, а затем Phone 2 начинает передавать данные. Для Phone1 flag не установлено true, и phone1 не начнет передавать данные. Есть ли у вас идеи, как решить эту проблему?

...