public class PermissionUtil
extends java.lang.Object
限定符和类型 | 类和说明 |
---|---|
static interface |
PermissionUtil.OnPermissionDialogCallback |
static interface |
PermissionUtil.PermissionCallbacks |
构造器和说明 |
---|
PermissionUtil() |
限定符和类型 | 方法和说明 |
---|---|
static void |
checkPermission(android.content.Context context,
android.content.Intent intent,
java.lang.String[] permissions,
boolean[] necessary)
检查要启动的activity所需要的权限,以startActivity方式启动,PermissionsActivity 处理内部逻辑,外部无需再处理
|
static void |
checkPermissionForResult(android.app.Activity activity,
android.content.Intent intent,
java.lang.String[] permissions,
boolean[] necessary,
int requestCode)
检查要启动的activity所需要的权限,以startActivityForResult方式启动, PermissionsActivity 处理内部逻辑,外部无需再处理
|
static boolean |
checkSelfPermission(java.lang.String permission) |
static android.app.Dialog |
getPermissionDeniedDialog(android.app.Activity activity,
java.lang.String[] permissions,
boolean force,
int requestCode,
PermissionUtil.OnPermissionDialogCallback callback) |
static int |
getPermissionStatus(android.app.Activity activity,
java.lang.String[] permissions)
检查权限状态:允许(1)/拒绝(2)/永久拒绝(3)
shouldShowRequestPermissionRationale 这个方法在第一次启动和永久拒绝时返回false,非永久拒绝返回true
|
static java.lang.String |
getPermissionString(java.lang.String[] permissions) |
static int |
getResourceId(java.lang.String permission) |
static boolean |
isNotificationEnable()
通知栏是否开启
|
static boolean |
lacksPermission(java.lang.String permission) |
static boolean |
lacksPermissions(java.lang.String[] permissions) |
static boolean |
lacksPermissions(java.lang.String[] permissions,
boolean[] isNecessaryPermissionList) |
static void |
onRequestPermissionsResult(android.app.Activity activity,
int requestCode,
java.lang.String[] permissions,
int[] grantResults,
java.lang.Object... receivers)
处理权限结果,并将结果返回给调用者
|
static void |
requestPermission(android.app.Activity activity,
java.lang.String[] permissions,
int requestCode)
请求权限,会回调activity的onRequestPermissionsResult方法
|
static void |
requestPermission(androidx.fragment.app.Fragment fragment,
java.lang.String[] permissions,
int requestCode)
请求权限,会回调fragment的onRequestPermissionsResult方法
|
static void |
showMissingPermissionDialog(android.app.Activity activity,
java.lang.String[] permissions,
boolean force,
int requestCode,
PermissionUtil.OnPermissionDialogCallback callback) |
static boolean |
somePermissionPermanentlyDenied(android.app.Activity activity,
java.util.List<java.lang.String> deniedPermissions)
检测是否有权限被永久拒绝,调用者在权限被用户拒绝后调用,可以得到是否存在权限被永久拒绝
|
static void |
startAppSettings(android.app.Activity activity)
跳转到设置页
|
static void |
startAppSettings(android.app.Activity activity,
int requestCode)
跳转到设置页
|
static void |
startAppSettings(androidx.fragment.app.Fragment fragment,
int requestCode)
跳转到设置页
|
public static final int PERMISSION_AVAILABLE
public static final int PERMISSION_DENIED
public static final int PERMISSION_NEVER_ASKED
public static final int REQUEST_CONTACTS
public static final int REQUEST_LOCATION
public static final int REQUEST_STORAGE
public static final int REQUEST_PHONE
public static final int REQUEST_MICROPHONE
public static final int REQUEST_CAMERA
public static final int REQUEST_CONTACTS_LOCATION_STORAGE
public static final int REQUEST_CAMERA_RECORD_AUDIO
public static final int REQUEST_STORAGE_PHONE
public static final int REQUEST_CONTACT_LOCATION
public static final int REQUEST_LOCATION_NEARBY
public static final int REQUEST_CALENDAR
public static final int REQUEST_SMS
public static final int REQUEST_ACTION_MANAGE_OVERLAY
public static final java.lang.String PACKAGE_URL_SCHEME
public static final int REQUEST_PERMISSION_SETTINGS
public static java.lang.String[] PERMISSIONS_CONTACT
public static java.lang.String[] PERMISSIONS_LOCATION
public static java.lang.String[] PERMISSIONS_STORAGE
public static java.lang.String[] PERMISSIONS_MICROPHONE
public static java.lang.String[] PERMISSIONS_CAMERA
public static java.lang.String[] PERMISSIONS_CAMERA_STORAG
public static java.lang.String[] PERMISSIONS_CAMERA_STORAGE
public static java.lang.String[] PERMISSIONS_CAMERA_RECORD_AUDIO_STORAGE
public static java.lang.String[] PERMISSIONS_CAMERA_RECORD_AUDIO
public static java.lang.String[] PERMISSIONS_CALENDAR
public static java.lang.String[] PERMISSIONS_CAMERA_RECORD_AUDIO_PHONE_STATE
public static java.lang.String[] PERMISSIONS_ACTION_MANAGE_OVERLAY
public static java.lang.String getPermissionString(java.lang.String[] permissions)
public static int getResourceId(java.lang.String permission)
public static boolean lacksPermissions(java.lang.String[] permissions)
public static boolean lacksPermissions(java.lang.String[] permissions, boolean[] isNecessaryPermissionList)
public static boolean lacksPermission(java.lang.String permission)
public static boolean checkSelfPermission(java.lang.String permission)
public static void startAppSettings(android.app.Activity activity, int requestCode)
activity
- requestCode
- public static void startAppSettings(android.app.Activity activity)
activity
- public static boolean isNotificationEnable()
public static void startAppSettings(androidx.fragment.app.Fragment fragment, int requestCode)
fragment
- requestCode
- public static void requestPermission(android.app.Activity activity, java.lang.String[] permissions, int requestCode)
activity
- permissions
- requestCode
- public static void requestPermission(androidx.fragment.app.Fragment fragment, java.lang.String[] permissions, int requestCode)
fragment
- permissions
- requestCode
- public static int getPermissionStatus(android.app.Activity activity, java.lang.String[] permissions)
activity
- permissions
- public static void checkPermission(android.content.Context context, android.content.Intent intent, java.lang.String[] permissions, boolean[] necessary)
context
- intent
- permissions
- necessary
- 哪些是必要权限,与permissions一一对应,如果传null,则表示所有权限都是必要权限,如果存在必要权限被拒绝了,则不会跳转到目标activitypublic static void checkPermissionForResult(android.app.Activity activity, android.content.Intent intent, java.lang.String[] permissions, boolean[] necessary, int requestCode)
activity
- intent
- permissions
- necessary
- 哪些是必要权限,与permissions一一对应,如果传null,则表示所有权限都是必要权限,如果存在必要权限被拒绝了,则不会跳转到目标activityrequestCode
- public static void onRequestPermissionsResult(android.app.Activity activity, int requestCode, @NonNull java.lang.String[] permissions, @NonNull int[] grantResults, java.lang.Object... receivers)
requestCode
- permissions
- grantResults
- receivers
- public static void showMissingPermissionDialog(android.app.Activity activity, java.lang.String[] permissions, boolean force, int requestCode, PermissionUtil.OnPermissionDialogCallback callback)
public static android.app.Dialog getPermissionDeniedDialog(android.app.Activity activity, java.lang.String[] permissions, boolean force, int requestCode, PermissionUtil.OnPermissionDialogCallback callback)
public static boolean somePermissionPermanentlyDenied(@NonNull android.app.Activity activity, @NonNull java.util.List<java.lang.String> deniedPermissions)
activity
- deniedPermissions
-