@Override protected Intent getInitIntent() { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { // Consider permissions List<String> perms = new LinkedList<String>(); for (AbstractBackendHelper helper : helpers) { perms.addAll(Arrays.asList(helper.getRequiredPermissions())); } for (Iterator<String> iterator = perms.iterator(); iterator.hasNext(); ) { String perm = iterator.next(); if (checkSelfPermission(perm) == PackageManager.PERMISSION_GRANTED) { iterator.remove(); } } if (perms.isEmpty()) return null; Intent intent = new Intent(this, MPermissionHelperActivity.class); intent.putExtra(MPermissionHelperActivity.EXTRA_PERMISSIONS, perms.toArray(new String[perms.size()])); return intent; } return super.getInitIntent(); } }