## 引言:首先工作中可以学到新的东西,在项目开发中会常常遇到一些问题.多番查找资料一直9.0版本拍照和相册一直无法显示,并且把ImageView默认的占位图都消失.问题已经解决.
1,首先版本6.0以上必须动态授权,9.0手机好像可以自动检测并弹出对话框询问.
2,直接看代码吧:
加入app中build.gradle //动态权限申请库
implementation ‘pub.devrel:easypermissions:1.3.0’
public class AddProposalActivity extends AppCompatActivity implements View.OnClickListener {
private ImageView mAddBack;
public static final int TAKE_PHOTO = 1;
public static final int CHOOSE_PHOTO = 2;
private Uri imageUri;
private String[] permissions = {Manifest.permission.CAMERA, Manifest.permission.WRITE_EXTERNAL_STORAGE};
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_add_proposal);
initView();
initData();
}
public void initData() {
}
public void initView() {
mAddHead = findViewById(R.id.add_head);
mAddHead.setOnClickListener(this);
}
@Override
public void onClick(View view) {
switch (view.getId()){
case R.id.add_head:
showPopueWindow();
break;
}
}
//获取权限
private void getPermission() {
if (EasyPermissions.hasPermissions(this, permissions)) {
//已经打开权限
Intent intent = new Intent("android.media.action.IMAGE_CAPTURE");
intent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri);
startActivityForResult(intent, TAKE_PHOTO);
Toast.makeText(this, "已经申请相关权限", Toast.LENGTH_SHORT).show();
} else {
//没有打开相关权限、申请权限
EasyPermissions.requestPermissions(this, "需要获取您的相册、照相使用权限", 1, permissions);
}
}
private void showPopueWindow(){
View popView = View.inflate(this,R.layout.popupwindow_camera_need,null);
Button bt_album = (Button) popView.findViewById(R.id.btn_pop_album);
Button bt_camera = (Button) popView.findViewById(R.id.btn_pop_camera);
Button bt_cancle = (Button) popVi