Camera.ACTION_NEW_PICTURE не работает или не срабатывает в Android Oreo 8.0 API 26 - PullRequest
0 голосов
/ 27 августа 2018

Этот код работал без проблем со времени API 19 (KitKat): он просто регистрирует приемник динамического вещания для получения новых изображений из приложения камеры.

private void registerCameraBroadcastReceiver() {
    cameraEventReceiver = new CameraEventReceiver(recorderService,
        ControlPanelFrag.this.getActivity().getApplicationContext());

    IntentFilter intentFilter = new IntentFilter("android.hardware.action.NEW_PICTURE");
    try {
        intentFilter.addDataType("image/*");
    } catch (MalformedMimeTypeException e) {
        Log.e(TAG, e.getMessage(), e);
    }

    ControlPanelFrag.this.getActivity().getApplicationContext()
        .registerReceiver(cameraEventReceiver, intentFilter);
}

private void unRegisterCameraBroadcastReceiver() {
    try {
        this.getActivity().getApplicationContext()
            .unregisterReceiver(cameraEventReceiver);
    } catch (IllegalArgumentException e) {
        Log.e(TAG, e.getMessage(), e);
    }
    cameraEventReceiver = null;
}

Из того, что я узнал, android.hardware.Camera.ACTION_NEW_PICTURE (класс Camera теперь устарел), не запускается в Android N (7 / API 24), но (повезло мне) было вернул в андроид Oreo (8 / API 26). У меня есть телефон (LG G6, который был обновлен с Android 7.0 до) Android 8.0 API 26, но приемник не работает, потому что я предполагаю, что широковещательная цель не срабатывает. Я тестировал тот же код с эмулятором AVD API 27 (Android 8.1), и код работает. (Я еще не тестировал в эмуляторе AVD с API 26, это могло бы сказать, является ли проблема только моим телефоном или нет). Любая идея ?

...