目录
MainActivity 代码修改
这一部分的代码,问题出在onActivityResult这个方法上,这里会要求Overriding method should call super.onActivityResult,这里需要在@Override上添加一行注释
@SuppressLint("MissingSuperCall")
完整代码:
@SuppressLint("MissingSuperCall")
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
switch (requestCode) {
case TAKE_PHOTO:
if (resultCode == RESULT_OK) {
try{
//将拍摄的图片显示出来
Bitmap bitmap = BitmapFactory.decodeStream(getContentResolver().openInputStream(imageUri));
picture.setImageBitmap(bitmap);
} catch (FileNotFoundException e){
e.printStackTrace();
}
}
break;
default:
break;
}
}
AndroidManifest.xml
在AndroidManifest.xml文件中的<provider>标签中android:name="android.support.v4.content.FileProvider"修改为
android:name="androidx.core.content.FileProvider"
完整代码:
<provider
android:authorities="com.example.cameraalbumtest.fileprovider"
android:name="androidx.core.content.FileProvider"
android:exported="false"
android:grantUriPermissions="true">
build.gradle
程序运行报错:
Installation did not succeed.
The application could not be installed: INSTALL_FAILED_OLDER_SDK
The application's minSdkVersion is newer than the device API level.
修改build.gradle
修改前:
修改后:
file_paths.xml
这里path=""会报错,不需要理睬。有强迫症的当然也可以在""里添加"."或者"/"不影响结果
总结
完成上述修改即可运行书上的实例,欢迎交流。