1请求以下权限
Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.WRITE_EXTERNAL_STORAGE,
Manifest.permission.CAMERA,
manifest中注册
app动态请求两步都需要
2调起相机
Intent takePictureIntent=new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
//确保有相机来处理Intent
if(takePictureIntent.resolveActivity(getPackageManager())!=null){
File photoFile=saveFileName();
tempFile=photoFile;
if(photoFile!=null){
Uri photoURI=FileProvider.getUriForFile(getApplicationContext(),"com.Cingke.cameraMake.fileprovider",photoFile);
takePictureIntent.addFlags(Intent.FLAG_GRANT_WRITE_URI_PERMISSION);
takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT,photoURI);
startActivityForResult(takePictureIntent,0);
}}
FileProvider的com.Cingke.cameraMake部分需要跟包名一样
在清单以及xml的配置
清单
<provider
android:authorities="com.Cingke.cameraMake.fileprovider"
android:name="androidx.core.content.FileProvider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/file_paths"></meta-data>
</provider>
res/xml
暴露部分根据实际情况配置
<?xml version="1.0" encoding="utf-8"?>
<paths xmlns:android="http://schemas.android.com/apk/res/android">
<external-path name="external_files" path="." />
</paths>
3保存位置
String currentPath=null;
private File saveFileName(){
//
File newFolder = this.getExternalFilesDir(Environment.DIRECTORY_PICTURES);
SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHHmmss");
Date date = new Date(System.currentTimeMillis());
String name =format.format(date)+".jpg" ;
filename=name;
File ji=null;
try {
ji=new File(newFolder+"/"+name);
ji.createNewFile();
currentPath=ji.getAbsolutePath();
} catch (Exception e) {
e.printStackTrace();
}
return ji;
}
4返回结果处理
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 0) {
FileOutputStream o=null;
Bitmap bitmap=BitmapFactory.decodeFile(currentPath);
//显示
image.setImageBitmap(bitmap);
//图片在文件管理器打不开,需要移出应用私有目录才可查看
}
}
版权声明:本文为weixin_44562033原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。