В android 6.0.1 восстановление фотокамеры не работает

1 - Некоторый коллега (который является разработчиком Android с использованием студии Android) сталкивается с проблемой, когда он тестирует свое приложение на моем телефоне (что является связующим звеном 5 с андроидом 6.0.1), проблема, с которой он сталкивается, заключается в том, что, когда он берет изображение из галереи, он работает с ним нормально, но при принятии фото с камеры не отображается, он подозревает, что изображение, которое он сохраняет на телефоне, не сохраняется, он подозревает, что это проблема разрешения, поскольку он работает на галактике, но не на связи.

2 - то же самое происходит со мной в единстве Я купил плагин, который раньше работал на моем телефоне (когда я снимаю фотоаппарат), а теперь после того, как я обновил его, больше не снимаю изображение, я имею в виду, что я иду в камеру и возвращаюсь к приложению, не имея ничего загруженного в виде, как раньше.

это то, что показывает logcat

--------- beginning of main 
02-07 16:36:10.272      203-813/? D/audio_hw_primary﹕ out_set_parameters: enter: usecase(1: low-latency-playback) kvpairs: routing=2 
02-07 16:36:10.282      203-813/? D/audio_hw_primary﹕ select_devices: out_snd_device(2: speaker) in_snd_device(0: none) 
02-07 16:36:10.282      203-813/? D/msm8974_platform﹕ platform_send_audio_calibration: sending audio calibration for snd_device(2) acdb_id(15) 
02-07 16:36:10.282      203-813/? D/audio_hw_primary﹕ enable_snd_device: snd_device(2: speaker) 
02-07 16:36:10.284      203-813/? D/audio_hw_primary﹕ enable_audio_route: apply and update mixer path: low-latency-playback 
02-07 16:36:10.289  24484-24484/? W/CAM_ActivityCloser﹕ WARNING: Activity was artificially finished: CameraActivityController was closed. 
02-07 16:36:10.302  24484-24484/? I/CAM_2RsmeActvtyFltr﹕ START onPause: Activity = [email protected]e256d 
02-07 16:36:10.303  24484-27584/? W/CAM2PORT_AndCamAgntImp﹕ Releasing camera without any camera opened. 
02-07 16:36:10.305  24484-24484/? I/CAM_2RsmeActvtyFltr﹕ END onPause: Activity = [email protected]e256d 
02-07 16:36:10.316  25275-25275/? D/CameraController﹕ onActivityResult 
02-07 16:36:10.316  25275-25275/? D/CameraController﹕ RESULT_OK 
02-07 16:36:10.329  25275-25275/? I/Unity﹕ **[CameraDemo] onCaptureImageFail**

Почему это происходит? И как его решить?

Ответы

Ответ 1

решение заключалось в том, чтобы запросить разрешение в предупреждении, а не только предоставить разрешение в манифесте.

Ответ 2

Вы должны спросить разрешения в действии

в вашей функции:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
        if (!Settings.System.canWrite(this)) {
            requestPermissions(new String[]{Manifest.permission.CAMERA,
                    Manifest.permission.CAMERA}, REQUEST_CAMERA);
        } else {
            takeFromCamera();
        }
    } else {
        takeFromCamera();
    }

и добавьте это в свою деятельность

@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
    if (requestCode == REQUEST_CAMERA) {
            if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
                takeFromCamera();
            } else {
                Log.e("Permission", "Denied");
            }
    }
}

в манифесте:

<uses-feature
    android:name="android.hardware.camera"
    android:required="true" />
<uses-feature android:name="android.hardware.camera.autofocus" />

<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

Ответ 3

Я мало знаю об единстве и прошу прощения, если это не поможет. В общем, для того, чтобы все правильно работало с использованием аппаратного обеспечения камеры и сохраняло изображение в собственном андроиде, файл androidmanifest.xml должен включать в себя тег приложения:

<uses-feature android:name="android.hardware.camera" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

Чтобы настроить файл манифеста из единицы, вот руководство, которое я нашел: https://matthewongamedesign.wordpress.com/2013/06/08/unity-and-the-android-manifest-file/

Ответ 4

Это похоже на проверку проверки времени выполнения. Android внедрил проверку разрешений времени выполнения от API 23 (зефир) дальше.

http://developer.android.com/training/permissions/requesting.html

Я надеюсь, что это будет полезно.

Ответ 5

предоставили ли вы разрешение на доступ к галерее? Пожалуйста, разместите свой код.