下面列出了android.content.Context#checkPermission ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
public static int checkPermission(@NonNull Context context, @NonNull String permission, int pid, int uid, String packageName) {
if (context.checkPermission(permission, pid, uid) == -1) {
return -1;
}
String op = AppOpsManagerCompat.permissionToOp(permission);
if (op == null) {
return 0;
}
if (packageName == null) {
String[] packageNames = context.getPackageManager().getPackagesForUid(uid);
if (packageNames == null || packageNames.length <= 0) {
return -1;
}
packageName = packageNames[0];
}
return AppOpsManagerCompat.noteProxyOp(context, op, packageName) != 0 ? -2 : 0;
}
private static void enforcePermission(Context context, LocalSocket peer)
throws IOException, PeerAuthorizationException {
Credentials credentials = peer.getPeerCredentials();
int uid = credentials.getUid();
int pid = credentials.getPid();
if (LogUtil.isLoggable(Log.VERBOSE)) {
LogUtil.v("Got request from uid=%d, pid=%d", uid, pid);
}
String requiredPermission = Manifest.permission.DUMP;
int checkResult = context.checkPermission(requiredPermission, pid, uid);
if (checkResult != PackageManager.PERMISSION_GRANTED) {
throw new PeerAuthorizationException(
"Peer pid=" + pid + ", uid=" + uid + " does not have " + requiredPermission);
}
}
public static int checkPermission(Context context, String permission) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
// 请求权限
return context.checkPermission(permission, Process.myPid(), Process.myUid());
}
return PackageManager.PERMISSION_GRANTED;
}
public AwSettings(Context context,
boolean isAccessFromFileURLsGrantedByDefault,
boolean supportsLegacyQuirks) {
boolean hasInternetPermission = context.checkPermission(
android.Manifest.permission.INTERNET,
Process.myPid(),
Process.myUid()) == PackageManager.PERMISSION_GRANTED;
synchronized (mAwSettingsLock) {
mHasInternetPermission = hasInternetPermission;
mBlockNetworkLoads = !hasInternetPermission;
mEventHandler = new EventHandler();
if (isAccessFromFileURLsGrantedByDefault) {
mAllowUniversalAccessFromFileURLs = true;
mAllowFileAccessFromFileURLs = true;
}
mUserAgent = LazyDefaultUserAgent.sInstance;
// Best-guess a sensible initial value based on the features supported on the device.
mSpatialNavigationEnabled = !context.getPackageManager().hasSystemFeature(
PackageManager.FEATURE_TOUCHSCREEN);
// Respect the system setting for password echoing.
mPasswordEchoEnabled = Settings.System.getInt(context.getContentResolver(),
Settings.System.TEXT_SHOW_PASSWORD, 1) == 1;
mSupportLegacyQuirks = supportsLegacyQuirks;
}
// Defer initializing the native side until a native WebContents instance is set.
}
/**
* Returns whether the current context lacks a given permission. Skips the check on M+ systems
* if {@code onlyPreM} is {@code true}, and just returns {@code false}.
*/
@VisibleForTesting
boolean lacksPermission(Context context, String permission, boolean onlyPreM) {
if (onlyPreM && Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) return false;
int permissionResult =
context.checkPermission(permission, Process.myPid(), Process.myUid());
return permissionResult != PackageManager.PERMISSION_GRANTED;
}
public static boolean isLocationEnabledForScanning_byRuntimePermissions(final Context context)
{
if( Utils.isMarshmallow() )
{
return
context.checkPermission(Manifest.permission.ACCESS_COARSE_LOCATION, android.os.Process.myPid(), android.os.Process.myUid()) == PackageManager.PERMISSION_GRANTED ||
context.checkPermission(Manifest.permission.ACCESS_FINE_LOCATION, android.os.Process.myPid(), android.os.Process.myUid()) == PackageManager.PERMISSION_GRANTED ;
}
else
{
return true;
}
}
public AwSettings(Context context,
boolean isAccessFromFileURLsGrantedByDefault,
boolean supportsLegacyQuirks) {
boolean hasInternetPermission = context.checkPermission(
android.Manifest.permission.INTERNET,
Process.myPid(),
Process.myUid()) == PackageManager.PERMISSION_GRANTED;
synchronized (mAwSettingsLock) {
mHasInternetPermission = hasInternetPermission;
mBlockNetworkLoads = !hasInternetPermission;
mEventHandler = new EventHandler();
if (isAccessFromFileURLsGrantedByDefault) {
mAllowUniversalAccessFromFileURLs = true;
mAllowFileAccessFromFileURLs = true;
}
mUserAgent = LazyDefaultUserAgent.sInstance;
// Best-guess a sensible initial value based on the features supported on the device.
mSpatialNavigationEnabled = !context.getPackageManager().hasSystemFeature(
PackageManager.FEATURE_TOUCHSCREEN);
// Respect the system setting for password echoing.
mPasswordEchoEnabled = Settings.System.getInt(context.getContentResolver(),
Settings.System.TEXT_SHOW_PASSWORD, 1) == 1;
mSupportLegacyQuirks = supportsLegacyQuirks;
}
// Defer initializing the native side until a native WebContents instance is set.
}
public static boolean hasPermission(Context context, String permission) {
Objects.requireNonNull(context, "The application context is required.");
return context.checkPermission(permission, Process.myPid(), Process.myUid())
== PackageManager.PERMISSION_GRANTED;
}
public static boolean havePermission( Context c ) {
return c.checkPermission( PERMISSION_RUN_TASKS, Process.myPid(), Process.myUid() ) ==
PackageManager.PERMISSION_GRANTED;
}
private static boolean hasVibratePermission(Context context) {
return context.checkPermission(VIBRATE, Process.myPid(), Process.myUid()) == PERMISSION_GRANTED;
}
public static boolean has(final Context context, final String permission) { //noinspection SimplifiableIfStatement
if (TEST_NO_DEV_PERMISSIONS && (INTERACT_ACROSS_USERS.equals(permission) || WRITE_SECURE_SETTINGS.equals(permission))) return false;
return context.checkPermission(permission, Process.myPid(), Process.myUid()) == PackageManager.PERMISSION_GRANTED;
}
public static boolean havePermission( Context c ) {
return c.checkPermission( PERMISSION_RUN_TASKS, Process.myPid(), Process.myUid() ) ==
PackageManager.PERMISSION_GRANTED;
}
public static boolean havePermission(Context c) {
return c.checkPermission(PERMISSION_RUN_TASKS, Process.myPid(), Process.myUid()) == PackageManager.PERMISSION_GRANTED;
}
public static int checkSelfPermission(@NonNull Context context, @NonNull String permission) {
if (permission != null) {
return context.checkPermission(permission, Process.myPid(), Process.myUid());
}
throw new IllegalArgumentException("permission is null");
}
public static boolean havePermission( Context c ) {
return c.checkPermission( PERMISSION_RUN_TASKS, Process.myPid(), Process.myUid() ) ==
PackageManager.PERMISSION_GRANTED;
}
public static boolean havePermission( Context c ) {
return c.checkPermission( PERMISSION_RUN_TASKS, Process.myPid(), Process.myUid() ) ==
PackageManager.PERMISSION_GRANTED;
}
@CalledByNative
private static boolean checkDebugPermission(Context context, int pid, int uid) {
String debugPermissionName = context.getPackageName() + DEBUG_PERMISSION_SIFFIX;
return context.checkPermission(debugPermissionName, pid, uid)
== PackageManager.PERMISSION_GRANTED;
}
static boolean hasPermission(Context context, String permission) {
return context.checkPermission(permission, Process.myPid(), Process.myUid()) == PackageManager.PERMISSION_GRANTED;
}
public static boolean havePermission(Context c) {
return c.checkPermission(PERMISSION_RUN_TASKS, Process.myPid(), Process.myUid()) == PackageManager.PERMISSION_GRANTED;
}
/**
* Determine whether <em>you</em> have been granted a particular permission.
*
* @param permission The name of the permission being checked.
* @return {@link android.content.pm.PackageManager#PERMISSION_GRANTED} if you have the
* permission, or {@link android.content.pm.PackageManager#PERMISSION_DENIED} if not.
* @see android.content.pm.PackageManager#checkPermission(String, String)
*/
public static int checkSelfPermission(Context context, String permission) {
if (permission == null) {
throw new IllegalArgumentException("permission is null");
}
return context.checkPermission(permission, Process.myPid(), Process.myUid());
}