
public class MarshMallowPermission {
public static final int RECORD_PERMISSION_REQUEST_CODE = 1;
public static final int EXTERNAL_STORAGE_PERMISSION_REQUEST_CODE = 2;
public static final int CAMERA_PERMISSION_REQUEST_CODE = 3;
public static final int GPS_FINE_LOCATION_PERMISSION_REQUEST_CODE = 4;
public static final int GPS_COARSE_LOCATION_PERMISSION_REQUEST_CODE = 5;
public static final int PHONE_CALL_PERMISSION_REQUEST_CODE = 6;
public static final int SEND_SMS_PERMISSION_REQUEST_CODE = 7;
Activity activity;
public MarshMallowPermission(Activity activity) {
this.activity = activity;
}
public boolean checkPermissionForRecord() {
int result = ContextCompat.checkSelfPermission(activity,
Manifest.permission.RECORD_AUDIO);
return result == PackageManager.PERMISSION_GRANTED;
}
public boolean checkPermissionForExternalStorage() {
int result = ContextCompat.checkSelfPermission(activity,
Manifest.permission.WRITE_EXTERNAL_STORAGE);
return result == PackageManager.PERMISSION_GRANTED;
}
public boolean checkPermissionForCamera() {
int result = ContextCompat.checkSelfPermission(activity,
Manifest.permission.CAMERA);
return result == PackageManager.PERMISSION_GRANTED;
}
public boolean checkPermissionForFineLocation() {
int result = ContextCompat.checkSelfPermission(activity,
Manifest.permission.ACCESS_FINE_LOCATION);
return result == PackageManager.PERMISSION_GRANTED;
}
public boolean checkPermissionForCoarseLocation() {
int result = ContextCompat.checkSelfPermission(activity,
Manifest.permission.ACCESS_COARSE_LOCATION);
return result == PackageManager.PERMISSION_GRANTED;
}
public boolean checkPermissionForDial() {
int result = ContextCompat.checkSelfPermission(activity,
Manifest.permission.CALL_PHONE);
return result == PackageManager.PERMISSION_GRANTED;
}
public boolean checkPermissionForSendSMS() {
int result = ContextCompat.checkSelfPermission(activity,
Manifest.permission.SEND_SMS);
return result == PackageManager.PERMISSION_GRANTED;
}
public void requestPermissionForRecord() {
if (ActivityCompat.shouldShowRequestPermissionRationale(activity,
Manifest.permission.RECORD_AUDIO)) {
// Toast.makeText(activity, "Microphone
permission needed for recording. Please allow in App Settings for additional
functionality.", Toast.LENGTH_LONG).show();
String message = "You need to grant access to Record feature";
showMessageOKCancel(message,
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
if (activity == null)
return;
ActivityCompat.requestPermissions(activity,
new String[]{Manifest.permission.RECORD_AUDIO}, RECORD_PERMISSION_REQUEST_CODE);
}
});
} else {
ActivityCompat.requestPermissions(activity,
new String[]{Manifest.permission.RECORD_AUDIO}, RECORD_PERMISSION_REQUEST_CODE);
}
}
public void requestPermissionForExternalStorage() {
if (ActivityCompat.shouldShowRequestPermissionRationale(activity,
Manifest.permission.WRITE_EXTERNAL_STORAGE)) {
// Toast.makeText(activity, "External Storage permission needed.
Please allow in App Settings for additional functionality.", Toast.LENGTH_LONG).show();
String message = "You need to grant access to Storage";
showMessageOKCancel(message,
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
if (activity == null)
return;
ActivityCompat.requestPermissions(activity,
new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},
EXTERNAL_STORAGE_PERMISSION_REQUEST_CODE);
}
});
} else {
ActivityCompat.requestPermissions(activity,
new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},
EXTERNAL_STORAGE_PERMISSION_REQUEST_CODE);
}
}
public void requestPermissionForDial() {
if (ActivityCompat.shouldShowRequestPermissionRationale(activity,
Manifest.permission.CALL_PHONE)) {
// Toast.makeText(activity, "External Storage permission needed.
Please allow in App Settings for additional functionality.", Toast.LENGTH_LONG).show();
String message = "You need to grant access to Storage";
showMessageOKCancel(message,
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
if (activity == null)
return;
ActivityCompat.requestPermissions(activity,
new String[]{Manifest.permission.CALL_PHONE}, PHONE_CALL_PERMISSION_REQUEST_CODE);
}
});
} else {
ActivityCompat.requestPermissions(activity,
new String[]{Manifest.permission.CALL_PHONE}, PHONE_CALL_PERMISSION_REQUEST_CODE);
}
}
public void requestPermissionForCamera() {
if (ActivityCompat.shouldShowRequestPermissionRationale(activity,
Manifest.permission.CAMERA)) {
// Toast.makeText(activity, "Camera permission needed.
Please allow in App Settings for additional functionality.", Toast.LENGTH_LONG).show();
String message = "You need to grant access to Camera feature";
showMessageOKCancel(message,
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
if (activity == null)
return;
ActivityCompat.requestPermissions(activity,
new String[]{Manifest.permission.CAMERA}, CAMERA_PERMISSION_REQUEST_CODE);
}
});
} else {
ActivityCompat.requestPermissions(activity,
new String[]{Manifest.permission.CAMERA}, CAMERA_PERMISSION_REQUEST_CODE);
}
}
public void requestPermissionForGPS() {
if (ActivityCompat.shouldShowRequestPermissionRationale(activity,
Manifest.permission.ACCESS_FINE_LOCATION)) {
// Toast.makeText(activity, "GPS permission needed.
Please allow in App Setting for additional functionality", Toast.LENGTH_LONG).show();
String message = "You need to grant access to GPS feature";
showMessageOKCancel(message,
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
if (activity == null)
return;
ActivityCompat.requestPermissions(activity,
new String[]{Manifest.permission.ACCESS_FINE_LOCATION},
GPS_FINE_LOCATION_PERMISSION_REQUEST_CODE);
}
});
} else {
ActivityCompat.requestPermissions(activity,
new String[]{Manifest.permission.ACCESS_FINE_LOCATION},
GPS_FINE_LOCATION_PERMISSION_REQUEST_CODE);
}
}
public void requestPermissionForGPS1() {
if (ActivityCompat.shouldShowRequestPermissionRationale(activity,
Manifest.permission.ACCESS_COARSE_LOCATION)) {
// Toast.makeText(activity, "GPS permission needed.
Please allow in App Setting for additional functionality", Toast.LENGTH_LONG).show();
String message = "You need to grant access to GPS feature";
showMessageOKCancel(message,
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
if (activity == null)
return;
ActivityCompat.requestPermissions(activity,
new String[]{Manifest.permission.ACCESS_COARSE_LOCATION},
GPS_COARSE_LOCATION_PERMISSION_REQUEST_CODE);
}
});
} else {
ActivityCompat.requestPermissions(activity,
new String[]{Manifest.permission.ACCESS_COARSE_LOCATION},
GPS_COARSE_LOCATION_PERMISSION_REQUEST_CODE);
}
}
public void requestPermissionsForCameraNew() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
ActivityCompat.requestPermissions(activity,
new String[]{Manifest.permission.CAMERA}, CAMERA_PERMISSION_REQUEST_CODE);
}
}
public void requestPermissionsForExternalStorageNew() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
ActivityCompat.requestPermissions(activity,
new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},
EXTERNAL_STORAGE_PERMISSION_REQUEST_CODE);
}
}
public void requestPermissionsForDialNew() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
ActivityCompat.requestPermissions(activity,
new String[]{Manifest.permission.CALL_PHONE}, PHONE_CALL_PERMISSION_REQUEST_CODE);
}
}
public void requestPermissionsForFineLocationNew() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
ActivityCompat.requestPermissions(activity,
new String[]{Manifest.permission.ACCESS_FINE_LOCATION},
GPS_FINE_LOCATION_PERMISSION_REQUEST_CODE);
}
}
public void requestPermissionsForSendSmsNew() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
ActivityCompat.requestPermissions(activity,
new String[]{Manifest.permission.SEND_SMS}, SEND_SMS_PERMISSION_REQUEST_CODE);
}
}
private void showMessageOKCancel(String message,
DialogInterface.OnClickListener okListener) {
if (activity == null)
return;
new AlertDialog.Builder(activity)
.setMessage(message)
.setPositiveButton("OK", okListener)
.setNegativeButton("Cancel", null)
.create()
.show();
}
}
============================================================================================
Access This Class in Your Class means .Java file
MarshMallowPermission marshMallowPermission = new MarshMallowPermission(YourActivity.this);
// request cameraif (!marshMallowPermission.checkPermissionForCamera()) {
marshMallowPermission.requestPermissionForCamera();
return;
}
Comments
Post a Comment