Camera.ACTION_NEW_PICTURE无法正常运行或未在Android Oreo 8.0 API中触发26

时间:2018-08-27 09:15:45

标签: broadcastreceiver android-camera intentfilter android-8.0-oreo

此代码自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)中没有触发,但是(幸运的是)在android Oreo(8 / API 26)。我有一部手机(从android 7.0更新为LG G6到android 8.0 API 26),但接收器无法正常工作,原因是我想未触发广播意图。我使用模拟器AVD API 27(android 8.1)测试了相同的代码,并且该代码正在运行。 (我尚未在具有API 26的AVD模拟器中进行测试,这可以说明问题是否出在我的手机上)。任何想法 ?

0 个答案:

没有答案