我正试图用相机拍照,但我收到以下错误:
FATAL EXCEPTION: main
Process: com.example.marek.myapplication, PID: 6747
java.lang.IllegalArgumentException: Failed to find configured root that contains /storage/emulated/0/Android/data/com.example.marek.myapplication/files/Pictures/JPEG_20170228_175633_470124220.jpg
at android.support.v4.content.FileProvider$SimplePathStrategy.getUriForFile(FileProvider.java:711)
at android.support.v4.content.FileProvider.getUriForFile(FileProvider.java:400)
at com.example.marek.myapplication.MainActivity.dispatchTakePictureIntent(MainActivity.java:56)
at com.example.marek.myapplication.MainActivity.access$100(MainActivity.java:22)
at com.example.marek.myapplication.MainActivity$1.onClick(MainActivity.java:35)
Run Code Online (Sandbox Code Playgroud)
AndroidManifest.xml中:
<provider
android:name="android.support.v4.content.FileProvider"
android:authorities="com.example.marek.myapplication.fileprovider"
android:enabled="true"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/file_paths" />
</provider>
Run Code Online (Sandbox Code Playgroud)
Java的:
Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
// Ensure that there's a camera activity to handle the intent
if (takePictureIntent.resolveActivity(getPackageManager()) != null) {
// Create the File where the photo should go
File photoFile = null;
try {
photoFile = createImageFile();
} catch …Run Code Online (Sandbox Code Playgroud) 在 androidx.activity 版本 1.2.0-alpha05 中,TakePicture 合约的 API 已更改:
TakePicture 合约现在返回一个指示成功的布尔值而不是缩略图位图,因为在将图像写入提供的 Uri 时,相机应用程序很少支持这一点
虽然在 alpha04 回调中接收到一个 Bitmap 对象,但现在回调只接收一个描述成功的布尔对象。
所以现在launcher的launch方法的Uri Parameter一定不能为null,而必须是图片保存的目的地。没有设法创建一个被启动器接受的 Uri 对象,该对象可用于我的应用程序读取结果图片。
有没有人为我提供可以提供给启动器的有效 Uri 对象的示例?