```photo_button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
checkPermission_Camera();
//Action here
}
});
```private void checkPermission_Camera(){
RxPermissions rxPermissions = new RxPermissions(ObjectInformationActivity.this);
rxPermissions.request(android.Manifest.permission.CAMERA)
.subscribe(new io.reactivex.functions.Consumer() {
@Override
public void accept(Boolean aBoolean) throws Exception {
if (aBoolean) {
// 用户已经同意该权限
takePhoto();
} else {
// 用户拒绝了该权限,并且选中『不再询问』
ToastUtils.showLong(getResources().getString(R.string.ask_for_permission));
}
}
});
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if(resultCode==RESULT_OK&&requestCode==REQUEST_CODE_CAMERA) {
Toast.makeText(this, "保存照片成功", Toast.LENGTH_SHORT).show();
Bitmap bitmap =(Bitmap) Objects.requireNonNull(data.getExtras()).get("data");
picture_of_object.setImageBitmap(bitmap);
}
super.onActivityResult(requestCode, resultCode, data);
}}
private void takePhoto(){
//初始化照片路径
Intent intent=new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
File file = new File(getExternalFilesDir(null)+File.separator+"myPicture");
if(!file.exists()){
file.mkdirs();
}
String pictureName =new SimpleDateFormat("yyyyMMddHHmmss").format(new Date())+".jpg";
File saveFile= new File(file,pictureName);
uri = FileProvider.getUriForFile(this,"univ.buaa.icabinet.activity",saveFile);
intent.putExtra(MediaStore.EXTRA_OUTPUT,uri);//根据这个uri保存照片
startActivityForResult(intent,REQUEST_CODE_CAMERA);//结果返回onActivityResult函数
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if(resultCode==RESULT_OK&&requestCode==REQUEST_CODE_CAMERA) {
Toast.makeText(this, "保存照片成功", Toast.LENGTH_SHORT).show();
Bitmap bitmap =(Bitmap) Objects.requireNonNull(data.getExtras()).get("data");
picture_of_object.setImageBitmap(bitmap);
}
super.onActivityResult(requestCode, resultCode, data);
}}