Обновить статус переключателя Android Studio - PullRequest
0 голосов
/ 22 сентября 2019

Я начинаю с Android Apps, программирую на Android Studio и практикуюсь с простым переключателем включения / выключения Bluetooth, переключатель работает нормально, он активирует и деактивирует Bluetooth, но если я активирую или деактивирую Bluetooth из быстрых настроек в строке состояния (без закрытия приложения) переключатель не обновляется.Я думаю, что приложение теряет фокус, поэтому я попытался проверить состояние Bluetooth и обновить переключатель на OnResume, но он не работает.Некоторые идеи?

public class bluetooth_Control extends AppCompatActivity{

    Switch aSwitch;
    BluetoothAdapter blueadp;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_bluetooth__control);

        aSwitch = (Switch) findViewById(R.id.switch2);
        blueadp =   BluetoothAdapter.getDefaultAdapter();



        aSwitch.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                if(isChecked){

                    Intent intent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
                    startActivityForResult(intent, 0);

                }
                else{

                    blueadp.disable();
                }
            }
        });

    }



    @Override
    protected void onResume(){
        super.onResume();
        setBTswitch(blueadp);
    }


    public void setBTswitch(BluetoothAdapter b){
        if(b.isEnabled()){
            aSwitch.setChecked(true);
        }
        else{
            aSwitch.setChecked(false);
        }
    }
}

1 Ответ

0 голосов
/ 22 сентября 2019

Вы должны добавить код об «обновлении переключателя onResume ()», иначе мы не сможем выяснить, что не так.Я предлагаю добавить логи в обратном вызове onResume (), чтобы проверить, нормально ли работают коды, получающие статус bluetooth.

...