Skip to content

Instantly share code, notes, and snippets.

@sbelloz
Last active February 29, 2016 10:14
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save sbelloz/f34abcfe851e9d25dd10 to your computer and use it in GitHub Desktop.
Save sbelloz/f34abcfe851e9d25dd10 to your computer and use it in GitHub Desktop.
Util class for request and check Android M permissions
package it.immobiliare.getrix.utils;
import android.Manifest;
import android.app.Activity;
import android.content.pm.PackageManager;
import android.support.v4.app.ActivityCompat;
import android.support.v4.content.ContextCompat;
import android.widget.Toast;
/**
* Created with Android Studio.
* User: SimoneBellotti
*/
public class MPermissionsUtil {
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 boolean checkPermissionForRecord(Activity activity) {
int result = ContextCompat.checkSelfPermission(activity, Manifest.permission.RECORD_AUDIO);
return result == PackageManager.PERMISSION_GRANTED;
}
public static boolean checkPermissionForExternalStorage(Activity activity) {
int result = ContextCompat.checkSelfPermission(activity, Manifest.permission.WRITE_EXTERNAL_STORAGE);
return result == PackageManager.PERMISSION_GRANTED;
}
public static boolean checkPermissionForCamera(Activity activity) {
int result = ContextCompat.checkSelfPermission(activity, Manifest.permission.CAMERA);
return result == PackageManager.PERMISSION_GRANTED;
}
public static void requestPermissionForRecord(Activity activity) {
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();
} else {
ActivityCompat.requestPermissions(activity, new String[]{Manifest.permission.RECORD_AUDIO}, RECORD_PERMISSION_REQUEST_CODE);
}
}
public static void requestPermissionForExternalStorage(Activity activity) {
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();
} else {
ActivityCompat.requestPermissions(activity, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.READ_EXTERNAL_STORAGE}, EXTERNAL_STORAGE_PERMISSION_REQUEST_CODE);
}
}
public static void requestPermissionForCamera(Activity activity) {
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();
} else {
ActivityCompat.requestPermissions(activity, new String[]{Manifest.permission.CAMERA}, CAMERA_PERMISSION_REQUEST_CODE);
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment