private boolean checkPermissions() { ApplicationPermissionsManager apm = ApplicationPermissionsManager .getInstance(); ApplicationPermissions original = apm.getApplicationPermissions(); // Set up and attach a reason provider if (original .getPermission(ApplicationPermissions.PERMISSION_INPUT_SIMULATION) == ApplicationPermissions.VALUE_ALLOW && original .getPermission(ApplicationPermissions.PERMISSION_PHONE) == ApplicationPermissions.VALUE_ALLOW && original .getPermission(ApplicationPermissions.PERMISSION_DEVICE_SETTINGS) == ApplicationPermissions.VALUE_ALLOW && original .getPermission(ApplicationPermissions.PERMISSION_EMAIL) == ApplicationPermissions.VALUE_ALLOW) { // All of the necessary permissions are currently available return true; } ApplicationPermissions permRequest = new ApplicationPermissions(); permRequest .addPermission(ApplicationPermissions.PERMISSION_INPUT_SIMULATION); permRequest.addPermission(ApplicationPermissions.PERMISSION_PHONE); permRequest .addPermission(ApplicationPermissions.PERMISSION_DEVICE_SETTINGS); permRequest.addPermission(ApplicationPermissions.PERMISSION_EMAIL); boolean acceptance = ApplicationPermissionsManager.getInstance() .invokePermissionsRequest(permRequest); return acceptance; }