Почему onTorchStatusChanged не вызывается при включении torch? - PullRequest
0 голосов
/ 24 марта 2020

Я пишу класс, который прослушивает изменения состояния факела (фонарик), используя camera2 API. Я новичок в android разработке, поэтому я просто пытаюсь и экспериментирую! Класс (MyClass) создается во фрагменте, и передается ссылка на это представление (, хотя я сейчас не использую его в этом коде ).

class MyClass (view : View){
    private val cm: CameraManager =
        view.context.getSystemService(Context.CAMERA_SERVICE) as CameraManager

    private val tc: CameraManager.TorchCallback = object : CameraManager.TorchCallback() {

        override fun onTorchModeChanged(cameraId: String, enabled: Boolean) {
            Log.i("MyClass", "id ${cameraId} - Torch status = ${enabled}")
            if (enabled)
                // Stuff
        }
    }

И в блоке инициализации у меня есть:

init{
    cm.registerTorchCallback(tc, null)
}

Теперь, когда я развертываю приложение на своем смартфоне (xiaomi miui 11), и я во фрагменте, где создается экземпляр класса, если я пытаюсь включить фонарик из уведомления windows (где размещены все быстрые переключатели) функция обратного вызова не вызывается : фактически журнал печатается только один раз (первый раз, как в документации) и никогда больше. Теперь я не знаю, сделал ли я что-то неправильно в коде или сам переключатель не связан с обратным вызовом факела. Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...