Slide 42
Slide 42 text
public class MainActivity extends AppCompatActivity {
private static final int REQUEST_SHOWCAMERA = 0;
private static final String[] PERMISSION_SHOWCAMERA = new String[]{“android.permission.CAMERA"};
private static final int REQUEST_SHOWCONTACT = 0;
private static final String[] PERMISSION_SHOWCONTACT = new String[]{“android.permission.READ_CONTACT"};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
if (PermissionChecker.checkSelfPermissions(this, PERMISSION_SHOWCAMERA) == PERMISSION_GRANTED) {
showCamera();
} else {
if (ActivityCompat.shouldShowRequestPermissionRationale(this, PERMISSION_SHOWCAMERA)) {
// show rationale…
}
ActivityCompat.requestPermissions(this, PERMISSION_SHOWCAMERA, REQUEST_SHOWCAMERA);
}
if (PermissionChecker.checkSelfPermissions(this, PERMISSION_SHOWCONTACT) == PERMISSION_GRANTED) {
showCamera();
} else {
if (ActivityCompat.shouldShowRequestPermissionRationale(this, PERMISSION_SHOWCONTACT)) {
// show rationale…
}
ActivityCompat.requestPermissions(this, PERMISSION_SHOWCONTACT, REQUEST_SHOWCONTACT);
}
}
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
switch (requestCode) {
case REQUEST_SHOWCAMERA:
if (!PermissionUtils.hasSelfPermissions(this, PERMISSION_SHOWCAMERA)) {
onCameraDenied();
return;
}
if (PermissionUtils.verifyPermissions(grantResults)) {
// show camera
} else {
if (ActivityCompat.shouldShowRequestPermissionRationale(this, PERMISSION_SHOWCAMERA)) {
// show denied action
} else {
// never ask again
}
}
break;
case REQUEST_SHOWCONTACT:
if (!PermissionUtils.hasSelfPermissions(this, PERMISSION_SHOWCONTACT)) {
// show denied action
return;
}
if (PermissionUtils.verifyPermissions(grantResults)) {
// show camera
} else {
if (ActivityCompat.shouldShowRequestPermissionRationale(this, PERMISSION_SHOWCONTACT)) {
// show denied action
} else {
// never ask again
}
}
break;
}
}