У меня есть функция, мне нужно запустить эту функцию в фоновом режиме, а также на переднем плане. эта функция читает значение с сервера BLE. Когда я нажимаю кнопку, она дает мне обновленное значение, но я не хочу получать значение от щелчка. Я хочу, чтобы он запускался каждый раз и обновлял значение в текстовом поле.
public void readData(){
if(manager.getConnectedDevices().size()<=0){
Toast.makeText(ModeFragment.this.getActivity(),"No connected devices", Toast.LENGTH_LONG).show();
return;
}
device1 = manager.getConnectedDevices().get(0);
Map<String , String> reciveData = getSpecificServiceInfo(device1 , CHARACTERISTIC_READABLE);
for (Map.Entry<String, String> e : reciveData.entrySet()){
manager.read(device1, e.getKey(), e.getValue(), new BleReadCallback() {
@Override
public void onRead(byte[] data, BleDevice device) {
Toast.makeText(ModeFragment.this.getActivity(), "Read success! data: " + new String(data), Toast.LENGTH_LONG).show();
// String str = data.toString();
// List<String> data1 = Arrays.asList(str.split(","));
textView.setText(new String(data));
intent.putExtra("data" , new String(data));
}
@Override
public void onFail(int failCode, String info, BleDevice device) {
// Toast.makeText(ModeFragment.this.getActivity(), "Read fail! data: " + info, Toast.LENGTH_LONG).show();
}
});
}
}
Создать мясной метод:
btnread.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
readData();
}
});