Requires Android Support v4 and v7, for example:
compile 'com.android.support:support-v4:24.2.1'
compile 'com.android.support:appcompat-v7:24.2.1'
These versions may be outdated when you read this, so perform a check.
Example usage:
import android.Manifest;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
public class YourActivity extends AppCompatActivity {
private static final String LOG_TAG = "activity";
private static final int PERMISSIONS_REQUEST_CODE = 1;
private AndroidPermissions mPermissions;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// these permissions have to match the ones you declared in the manifest
//
// If you need WRITE_SETTINGS, check the following:
// http://stackoverflow.com/questions/32083410/cant-get-write-settings-permission
mPermissions = new AndroidPermissions(this,
Manifest.permission.INTERNET,
Manifest.permission.BLUETOOTH);
}
private void doSomething() {
if (mPermissions.checkPermissions()) {
myImplementation();
} else {
Log.i(LOG_TAG, "Some needed permissions are missing. Requesting them.");
mPermissions.requestPermissions(PERMISSIONS_REQUEST_CODE);
}
}
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
Log.i(LOG_TAG, "onRequestPermissionsResult");
if (mPermissions.areAllRequiredPermissionsGranted(permissions, grantResults)) {
myImplementation();
} else {
onInsufficientPermissions();
}
}
private void onInsufficientPermissions() {
//your implementation to show the user that the required permissions have not been granted
}
private void myImplementation() {
//your implementation here
}
}