内容uri在Android KitKat上崩溃相机

Yen*_*enn 3 android android-fileprovider android-4.4-kitkat

我在Android API 19(Kitkat)上使用内容uri和FileProvider时遇到问题.这是我用来在设备上打开相机并录制视频的代码:

File file = new File(pathname);
Uri fileUri = FileProvider.getUriForFile(this, AUTHORITY_STRING, file);

Intent intent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);
intent.putExtra(MediaStore.EXTRA_OUTPUT, fileUri);
startActivityForResult(intent, requestCode);
Run Code Online (Sandbox Code Playgroud)

我已经在API的23-24上测试了这个代码,它运行得很好,但在我开始在相机应用程序中拍摄视频后,API 19相机以RESULT_CANCELED关闭.当我试图用ACTION_IMAGE_CAPTURE动作拍照时,同样的事情发生了.我试图用Uri.fromFile()更改FileProvider.getUriForFile().这在Kitkat上完美运行,但我无法在Android 7上使用它.为什么Adnroid Kitkat上的Camera不想使用内容uri?

小智 17

也许你可以尝试这个.

    if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.KITKAT){
        fileUri = Uri.fromFile(mTmpFile);
    } else {
        fileUri = FileProvider.getUriForFile(getContext(),
                getContext().getPackageName()+".provider",mTmpFile);
    }
Run Code Online (Sandbox Code Playgroud)