1. 程式人生 > >Android照相機動態許可權

Android照相機動態許可權

  @OnClick(R.id.to_camear_btn)
    public void onClick() {

//        checkSelfPermission 檢測有沒有 許可權
//        PackageManager.PERMISSION_GRANTED 有許可權
//        PackageManager.PERMISSION_DENIED  拒絕許可權
if(ActivityCompat.checkSelfPermission(this,Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED
){ //許可權發生了改變 true // false 小米 if(ActivityCompat.shouldShowRequestPermissionRationale(this,Manifest.permission.CAMERA)){ new AlertDialog.Builder(this).setTitle("title") .setPositiveButton("ok", new DialogInterface.OnClickListener() { @Override
public void onClick(DialogInterface dialog, int which) { // 請求授權 ActivityCompat.requestPermissions(PermissionActivity.this,new String[]{Manifest.permission.CAMERA},1); } }).setNegativeButton("cancel", new DialogInterface.OnClickListener() { @Override
public void onClick(DialogInterface dialog, int which) { } }).create().show(); }else { ActivityCompat.requestPermissions(PermissionActivity.this,new String[]{Manifest.permission.CAMERA},1); } }else{ camear(); } } /** * * @param requestCode * @param permissions 請求的許可權 * @param grantResults 請求許可權返回的結果 */ @Override public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { super.onRequestPermissionsResult(requestCode, permissions, grantResults); if(requestCode == 1){ // camear 許可權回撥 if(grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED){ // 表示使用者授權 Toast.makeText(this, " user Permission" , Toast.LENGTH_SHORT).show(); camear(); } else { //使用者拒絕許可權 Toast.makeText(this, " no Permission" , Toast.LENGTH_SHORT).show(); } } } public void camear(){ try { Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); startActivityForResult(intent,1); } catch (Exception e) { e.printStackTrace(); } }