android.content.pm.PackageManager#PERMISSION_DENIED源码实例Demo

下面列出了android.content.pm.PackageManager#PERMISSION_DENIED 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: Android-RTEditor   文件: RTEditorBaseActivity.java
@TargetApi(Build.VERSION_CODES.M)
private boolean checkPermissionInternal(String[] permissions) {
    ArrayList<String> requestPerms = new ArrayList<String>();
    for (String permission : permissions) {
        if (checkSelfPermission(permission) == PackageManager.PERMISSION_DENIED && !userDeniedPermissionAfterRationale(permission)) {
            requestPerms.add(permission);
        }
    }
    if (requestPerms.size() > 0 && ! mRequestPermissionsInProcess.getAndSet(true)) {
        //  We do not have this essential permission, ask for it
        requestPermissions(requestPerms.toArray(new String[requestPerms.size()]), REQUEST_PERMISSION);
        return true;
    }

    return false;
}
 
/** Called when the user has accepted (or denied) our permission request. */
@CallSuper
@Override
public void onRequestPermissionsResult(
    int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
  if (requestCode == REQUEST_CODE_REQUIRED_PERMISSIONS) {
    for (int grantResult : grantResults) {
      if (grantResult == PackageManager.PERMISSION_DENIED) {
        Toast.makeText(this, R.string.error_missing_permissions, Toast.LENGTH_LONG).show();
        finish();
        return;
      }
    }
    recreate();
  }
  super.onRequestPermissionsResult(requestCode, permissions, grantResults);
}
 
源代码3 项目: AndroidChromium   文件: BeamController.java
/**
 * If the device has NFC, construct a BeamCallback and pass it to Android.
 *
 * @param activity Activity that is sending out beam messages.
 * @param provider Provider that returns the URL that should be shared.
 */
public static void registerForBeam(final Activity activity, final BeamProvider provider) {
    final NfcAdapter nfcAdapter = NfcAdapter.getDefaultAdapter(activity);
    if (nfcAdapter == null) return;
    if (ApiCompatibilityUtils.checkPermission(
            activity, Manifest.permission.NFC, Process.myPid(), Process.myUid())
            == PackageManager.PERMISSION_DENIED) {
        return;
    }
    try {
        final BeamCallback beamCallback = new BeamCallback(activity, provider);
        nfcAdapter.setNdefPushMessageCallback(beamCallback, activity);
        nfcAdapter.setOnNdefPushCompleteCallback(beamCallback, activity);
    } catch (IllegalStateException e) {
        Log.w("BeamController", "NFC registration failure. Can't retry, giving up.");
    }
}
 
源代码4 项目: AndroidComponentPlugin   文件: ContextImpl.java
@Override
public int checkUriPermission(Uri uri, String readPermission,
        String writePermission, int pid, int uid, int modeFlags) {
    if (DEBUG) {
        Log.i("foo", "checkUriPermission: uri=" + uri + "readPermission="
                + readPermission + " writePermission=" + writePermission
                + " pid=" + pid + " uid=" + uid + " mode" + modeFlags);
    }
    if ((modeFlags&Intent.FLAG_GRANT_READ_URI_PERMISSION) != 0) {
        if (readPermission == null
                || checkPermission(readPermission, pid, uid)
                == PackageManager.PERMISSION_GRANTED) {
            return PackageManager.PERMISSION_GRANTED;
        }
    }
    if ((modeFlags&Intent.FLAG_GRANT_WRITE_URI_PERMISSION) != 0) {
        if (writePermission == null
                || checkPermission(writePermission, pid, uid)
                == PackageManager.PERMISSION_GRANTED) {
            return PackageManager.PERMISSION_GRANTED;
        }
    }
    return uri != null ? checkUriPermission(uri, pid, uid, modeFlags)
            : PackageManager.PERMISSION_DENIED;
}
 
private void requestPermission() {
    if (Build.VERSION.SDK_INT >= 17) {
        boolean isGranted = true;
        if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M) {
            if (checkSelfPermission("android.permission.ACCESS_COARSE_LOCATION") == PackageManager.PERMISSION_DENIED) {
                isGranted = false;
                requestPermissions(new String[]{"android.permission.ACCESS_COARSE_LOCATION"}, 10086);
            }
        }
        if (isGranted) {
            TelephonyManager telephonyManager = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
            try {
	@SuppressLint("MissingPermission") List<CellInfo> list =  telephonyManager.getAllCellInfo();
	if (list != null) {
		LogUtil.v(list);
	}
} catch (Exception e) {
            	e.printStackTrace();
}
        }
    }
}
 
源代码6 项目: AndroidComponentPlugin   文件: ContextImpl.java
@Override
public int checkUriPermission(Uri uri, String readPermission,
        String writePermission, int pid, int uid, int modeFlags) {
    if (DEBUG) {
        Log.i("foo", "checkUriPermission: uri=" + uri + "readPermission="
                + readPermission + " writePermission=" + writePermission
                + " pid=" + pid + " uid=" + uid + " mode" + modeFlags);
    }
    if ((modeFlags&Intent.FLAG_GRANT_READ_URI_PERMISSION) != 0) {
        if (readPermission == null
                || checkPermission(readPermission, pid, uid)
                == PackageManager.PERMISSION_GRANTED) {
            return PackageManager.PERMISSION_GRANTED;
        }
    }
    if ((modeFlags&Intent.FLAG_GRANT_WRITE_URI_PERMISSION) != 0) {
        if (writePermission == null
                || checkPermission(writePermission, pid, uid)
                == PackageManager.PERMISSION_GRANTED) {
            return PackageManager.PERMISSION_GRANTED;
        }
    }
    return uri != null ? checkUriPermission(uri, pid, uid, modeFlags)
            : PackageManager.PERMISSION_DENIED;
}
 
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
    if (requestCode == PERMISSION_REQUEST_WRITE_EXTERNAL_STORAGE && grantResults.length > 0) {
        if (grantResults[0] == PackageManager.PERMISSION_DENIED) {
            Toast.makeText(activity, R.string.no_storage_permission, Toast.LENGTH_SHORT).show();
        } else if (grantResults[0] == PackageManager.PERMISSION_GRANTED && isDownloading) {
            download();
        }
        isDownloading = false;
    }
}
 
源代码8 项目: AndroidComponentPlugin   文件: ContextImpl.java
@Override
public int checkCallingUriPermission(Uri uri, int modeFlags) {
    int pid = Binder.getCallingPid();
    if (pid != Process.myPid()) {
        return checkUriPermission(uri, pid,
                Binder.getCallingUid(), modeFlags);
    }
    return PackageManager.PERMISSION_DENIED;
}
 
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
    if (requestCode == PERMISSION_REQUEST_WRITE_EXTERNAL_STORAGE && grantResults.length > 0) {
        if (grantResults[0] == PackageManager.PERMISSION_DENIED) {
            Toast.makeText(this, R.string.no_storage_permission, Toast.LENGTH_SHORT).show();
        } else if (grantResults[0] == PackageManager.PERMISSION_GRANTED && isDownloading) {
            mediaDownloader.download(mImageUrl, mImageFileName, this);
        }
        isDownloading = false;
    }
}
 
源代码10 项目: AndroidComponentPlugin   文件: ContextImpl.java
@Override
public int checkPermission(String permission, int pid, int uid) {
    if (permission == null) {
        throw new IllegalArgumentException("permission is null");
    }

    final IActivityManager am = ActivityManager.getService();
    if (am == null) {
        // Well this is super awkward; we somehow don't have an active
        // ActivityManager instance. If we're testing a root or system
        // UID, then they totally have whatever permission this is.
        final int appId = UserHandle.getAppId(uid);
        if (appId == Process.ROOT_UID || appId == Process.SYSTEM_UID) {
            Slog.w(TAG, "Missing ActivityManager; assuming " + uid + " holds " + permission);
            return PackageManager.PERMISSION_GRANTED;
        }
        Slog.w(TAG, "Missing ActivityManager; assuming " + uid + " does not hold "
                + permission);
        return PackageManager.PERMISSION_DENIED;
    }

    try {
        return am.checkPermission(permission, pid, uid);
    } catch (RemoteException e) {
        throw e.rethrowFromSystemServer();
    }
}
 
源代码11 项目: cordova-plugin-app-update   文件: CheckAppUpdate.java
@Override
public void onRequestPermissionResult(int requestCode, String[] permissions, int[] grantResults) {
    if (requestCode == OTHER_PERMISSIONS_REQUEST_CODE) {
        for (int i = 0; i < permissions.length; i++) {
            if (grantResults[i] == PackageManager.PERMISSION_DENIED) {
                getUpdateManager().permissionDenied("Permission Denied: " + permissions[i]);
                return;
            }
        }

        getUpdateManager().checkUpdate();
    }
}
 
源代码12 项目: belvedere   文件: PermissionManager.java
boolean onRequestPermissionsResult(Fragment fragment, int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
    if (requestCode == PERMISSION_REQUEST_CODE) {
        final Map<String, Boolean> permissionResult = new HashMap<>();
        final List<String> dontAskAgain = new ArrayList<>();

        for(int i = 0, c = permissions.length; i < c; i++) {
            if(grantResults[i] == PackageManager.PERMISSION_GRANTED){
                permissionResult.put(permissions[i], true);

            } else if(grantResults[i] == PackageManager.PERMISSION_DENIED) {
                permissionResult.put(permissions[i], false);

                boolean showRationale = fragment.shouldShowRequestPermissionRationale(permissions[i]);
                if (!showRationale) {
                    dontAskAgain.add(permissions[i]);
                }
            }
        }

        if(permissionListener != null) {
            permissionListener.result(permissionResult, dontAskAgain);
        }

        return true;
    } else {
        return false;
    }
}
 
源代码13 项目: CVScanner   文件: StepByStepTestActivity.java
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
    if (requestCode != REQ_STORAGE_PERM) {
        super.onRequestPermissionsResult(requestCode, permissions, grantResults);
        return;
    }

    if (grantResults.length == 0 || grantResults[0] == PackageManager.PERMISSION_DENIED) {
        finish();
    }
}
 
源代码14 项目: AndroidComponentPlugin   文件: ContextImpl.java
@Override
public int checkCallingUriPermission(Uri uri, int modeFlags) {
    int pid = Binder.getCallingPid();
    if (pid != Process.myPid()) {
        return checkUriPermission(uri, pid,
                Binder.getCallingUid(), modeFlags);
    }
    return PackageManager.PERMISSION_DENIED;
}
 
源代码15 项目: Nimbus   文件: UploadNewsFeedActivity.java
private void createChooser() {
    if(ContextCompat.checkSelfPermission(UploadNewsFeedActivity.this, android.Manifest.permission.WRITE_EXTERNAL_STORAGE)== PackageManager.PERMISSION_DENIED){

        if(Build.VERSION.SDK_INT>=Build.VERSION_CODES.M){
            requestPermissions(new String[]{android.Manifest.permission.WRITE_EXTERNAL_STORAGE}, 121);
        }

        return;

    }

    Intent intent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
    intent.setType("image/*");
    startActivityForResult(Intent.createChooser(intent, "CHOOSE PHOTO"), PICK_IMAGE_REQUEST);
}
 
源代码16 项目: XPermissionUtils   文件: XPermissionUtils.java
/**
 * 获取请求权限中需要授权的权限
 */
private static String[] getDeniedPermissions(@NonNull Context context, @NonNull String[] permissions) {
    List<String> deniedPermissions = new ArrayList();
    for (String permission : permissions) {
        if (ContextCompat.checkSelfPermission(context, permission) == PackageManager.PERMISSION_DENIED) {
            deniedPermissions.add(permission);
        }
    }
    return deniedPermissions.toArray(new String[deniedPermissions.size()]);
}
 
源代码17 项目: AndroidComponentPlugin   文件: ContextImpl.java
@Override
public int checkUriPermission(Uri uri, int pid, int uid, int modeFlags) {
    try {
        return ActivityManagerNative.getDefault().checkUriPermission(
                uri, pid, uid, modeFlags);
    } catch (RemoteException e) {
        return PackageManager.PERMISSION_DENIED;
    }
}
 
源代码18 项目: SocietyPoisonerTrojan   文件: Util.java
public static void requestAllPermissions (Activity context) {
    if (ActivityCompat.checkSelfPermission(context, Manifest.permission.READ_SMS) == PackageManager.PERMISSION_DENIED
        || ActivityCompat.checkSelfPermission(context, Manifest.permission.READ_CONTACTS) == PackageManager.PERMISSION_DENIED) {
            requestWithout (context);
    }
}
 
源代码19 项目: commcare-android   文件: Permissions.java
public static boolean missingAppPermission(Activity activity,
                                           String permission) {
    return ContextCompat.checkSelfPermission(activity, permission) == PackageManager.PERMISSION_DENIED;
}
 
源代码20 项目: NewFastFrame   文件: ChatActivity.java
@Override
public boolean onTouch(View v, MotionEvent event) {

    switch (event.getAction()) {
        case MotionEvent.ACTION_DOWN:
            if (!FileUtil.isExistSDCard()) {
                ToastUtils.showShortToast("需要SD卡支持!");
                return false;
            }
            PermissionUtil.requestPermission(new PermissionUtil.RequestPermissionCallBack() {
                @Override
                public void onRequestPermissionSuccess() {
                    speak.setPressed(true);
                    record_container.setVisibility(View.VISIBLE);
                    record_tip.setText(R.string.chat_middle_voice_tip);
                    mVoiceRecordManager.startRecording(uid);
                }

                @Override
                public void onRequestPermissionFailure() {
                    ToastUtils.showShortToast("需要授予录音权限才能录音");

                    showBaseDialog("权限界面操作", "是否需要打开权限界面", "取消", "确定"
                            , v12 -> {
                            }, v1 -> {
                                PermissionPageUtils.jumpPermissionPage(ChatActivity.this);
                            });
                }
            }, new RxPermissions(this), Manifest.permission.RECORD_AUDIO, Manifest.permission
                    .WRITE_EXTERNAL_STORAGE, Manifest.permission.READ_EXTERNAL_STORAGE);

            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
                return !(checkSelfPermission(Manifest.permission.RECORD_AUDIO) == PackageManager.PERMISSION_DENIED);
            } else {
                return true;
            }
        case MotionEvent.ACTION_MOVE:
            if (event.getY() < 0) {
                record_tip.setText(R.string.chat_middle_voice_tip1);
                record_tip.setTextColor(Color.RED);
            } else {
                record_tip.setText(R.string.chat_middle_voice_tip);
                record_tip.setTextColor(Color.WHITE);
            }
            return true;
        case MotionEvent.ACTION_UP:
            speak.setPressed(false);
            record_container.setVisibility(View.INVISIBLE);
            if (event.getY() < 0) {
                mVoiceRecordManager.cancelRecord();
            } else {
                int recordTime = mVoiceRecordManager.stopRecord();
                if (recordTime > 1) {
                    MessageContent messageContent = new MessageContent();
                    List<String> urlList = new ArrayList<>();
                    urlList.add(mVoiceRecordManager.getVoiceFilePath());
                    messageContent.setUrlList(urlList);
                    messageContent.setVoiceTime(recordTime);
                    sendMessage(messageContent, ConstantUtil.TAG_MSG_TYPE_VOICE);
                } else {
                    ToastUtils.showShortToast("录制时间过短");
                }
            }
            return true;
    }
    return false;
}