private static boolean requestPermissionIfNeeded(String permission, Activity activity) {
if (ContextCompat.checkSelfPermission(activity, permission) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(activity, new String[]{permission}, 1);
return true;
}
return false;
}
java类android.content.pm.PackageManager的实例源码
KeyboardService.java 文件源码
项目:ROKOmoji.Emoji.Keyboard.App-Android
阅读 33
收藏 0
点赞 0
评论 0
DialogsActivity.java 文件源码
项目:airgram
阅读 35
收藏 0
点赞 0
评论 0
@TargetApi(Build.VERSION_CODES.M)
private void askForPermissons() {
Activity activity = getParentActivity();
if (activity == null) {
return;
}
ArrayList<String> permissons = new ArrayList<>();
if (activity.checkSelfPermission(Manifest.permission.READ_CONTACTS) != PackageManager.PERMISSION_GRANTED) {
permissons.add(Manifest.permission.READ_CONTACTS);
permissons.add(Manifest.permission.WRITE_CONTACTS);
permissons.add(Manifest.permission.GET_ACCOUNTS);
}
if (activity.checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
permissons.add(Manifest.permission.READ_EXTERNAL_STORAGE);
permissons.add(Manifest.permission.WRITE_EXTERNAL_STORAGE);
}
String[] items = permissons.toArray(new String[permissons.size()]);
activity.requestPermissions(items, 1);
}
PermissionHelper.java 文件源码
项目:COB
阅读 42
收藏 0
点赞 0
评论 0
private static void deliverPermissionResult(CordovaPlugin plugin, int requestCode, String[] permissions) {
// Generate the request results
int[] requestResults = new int[permissions.length];
Arrays.fill(requestResults, PackageManager.PERMISSION_GRANTED);
try {
Method onRequestPermissionResult = CordovaPlugin.class.getDeclaredMethod(
"onRequestPermissionResult", int.class, String[].class, int[].class);
onRequestPermissionResult.invoke(plugin, requestCode, permissions, requestResults);
} catch (NoSuchMethodException noSuchMethodException) {
// Should never be caught since the plugin must be written for cordova-android 5.0.0+ if it
// made it to this point
LOG.e(LOG_TAG, "NoSuchMethodException when delivering permissions results", noSuchMethodException);
} catch (IllegalAccessException illegalAccessException) {
// Should never be caught; this is a public method
LOG.e(LOG_TAG, "IllegalAccessException when delivering permissions results", illegalAccessException);
} catch(InvocationTargetException invocationTargetException) {
// This method may throw a JSONException. We are just duplicating cordova-android's
// exception handling behavior here; all it does is log the exception in CordovaActivity,
// print the stacktrace, and ignore it
LOG.e(LOG_TAG, "InvocationTargetException when delivering permissions results", invocationTargetException);
}
}
MainActivity.java 文件源码
项目:Dispatch
阅读 35
收藏 0
点赞 0
评论 0
private void getLocationPermission() {
/*
* Request location permission, so that we can get the location of the
* device. The result of the permission request is handled by a callback,
* onRequestPermissionsResult.
*/
if (ContextCompat.checkSelfPermission(this.getApplicationContext(),
android.Manifest.permission.ACCESS_FINE_LOCATION)
== PackageManager.PERMISSION_GRANTED) {
mLocationPermissionGranted = true;
} else {
ActivityCompat.requestPermissions(this,
new String[]{android.Manifest.permission.ACCESS_FINE_LOCATION},
PERMISSIONS_REQUEST_ACCESS_FINE_LOCATION);
}
}
AppUtil.java 文件源码
项目:AndroidBasicLibs
阅读 39
收藏 0
点赞 0
评论 0
/**
* 获取渠道,用于打包
*
* @param context
* @param metaName
* @return
*/
public static String getAppSource(Context context, String metaName) {
String result = null;
try {
ApplicationInfo appInfo = context.getPackageManager()
.getApplicationInfo(context.getPackageName(),
PackageManager.GET_META_DATA);
if (appInfo.metaData != null) {
result = appInfo.metaData.getString(metaName);
}
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
JLog.e(e.toString());
}
return result;
}
AttachmentPagerFragment.java 文件源码
项目:Hands-On-Android-UI-Development
阅读 27
收藏 0
点赞 0
评论 0
public void onAttachClick() {
final int permissionStatus = ContextCompat.checkSelfPermission(
getContext(),
Manifest.permission.READ_EXTERNAL_STORAGE
);
if (permissionStatus != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(
getActivity(),
new String[]{Manifest.permission.READ_EXTERNAL_STORAGE},
REQUEST_ATTACH_PERMISSION
);
return;
}
final Intent attach = new Intent(Intent.ACTION_GET_CONTENT)
.addCategory(Intent.CATEGORY_OPENABLE)
.setType("*/*");
startActivityForResult(attach, REQUEST_ATTACH_FILE);
}
IPackageManagerHookHandle.java 文件源码
项目:DroidPlugin
阅读 32
收藏 0
点赞 0
评论 0
@Override
protected boolean beforeInvoke(Object receiver, Method method, Object[] args) throws Throwable {
//API 2.3, 4.01, 4.0.3_r1,
/* public int getApplicationEnabledSetting(String packageName) throws RemoteException;*/
//API 4.1.1_r1, 4.2_r1, 4.3_r1, 4.4_r1, 5.0.2_r1
/*public int getApplicationEnabledSetting(String packageName, int userId) throws RemoteException;*/
if (args != null) {
final int index = 0;
if (args.length > index && args[index] instanceof String) {
String packageName = (String) args[index];
if (PluginManager.getInstance().isPluginPackage(packageName)) {
//DO NOTHING
setFakedResult(PackageManager.COMPONENT_ENABLED_STATE_DEFAULT);
return true;
}
}
}
return super.beforeInvoke(receiver, method, args);
}
PlayerActivity.java 文件源码
项目:lostfilm-android-client
阅读 41
收藏 0
点赞 0
评论 0
@Override
public void onNext(DownloadLink[] downloadLinks) {
String[] strings = new String[downloadLinks.length];
for (int i = 0; i < downloadLinks.length; i++) {
strings[i] = downloadLinks[i].getName();
}
new AlertDialog.Builder(this).setItems(strings, (dialogInterface, i) -> {
mSelectedLink = downloadLinks[i];
if (ActivityCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE) ==
PackageManager.PERMISSION_GRANTED) {
loadMovie();
} else {
ActivityCompat.requestPermissions(this,
new String[]{Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.WRITE_EXTERNAL_STORAGE},
MY_PERMISSIONS_REQUEST_PLAY_MOVIE);
}
}).show();
}
MainActivity.java 文件源码
项目:BeaconMqtt
阅读 27
收藏 0
点赞 0
评论 0
private void checkPermissions() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
// Android M Permission check
if (this.checkSelfPermission(Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
final AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle(R.string.location_access_title);
builder.setMessage(R.string.location_access_message);
builder.setPositiveButton(android.R.string.ok, null);
builder.setOnDismissListener(new DialogInterface.OnDismissListener() {
@RequiresApi(api = Build.VERSION_CODES.M)
public void onDismiss(DialogInterface dialog) {
requestPermissions(new String[]{Manifest.permission.ACCESS_COARSE_LOCATION}, PERMISSION_REQUEST_COARSE_LOCATION);
}
});
builder.show();
}
}
}
MainActivity.java 文件源码
项目:Android-Practice
阅读 27
收藏 0
点赞 0
评论 0
public static String getKeyHash(final Context context) {
PackageInfo packageInfo = getPackageInfo(context, PackageManager.GET_SIGNATURES);
if (packageInfo == null)
return null;
for (Signature signature : packageInfo.signatures) {
try {
MessageDigest md = MessageDigest.getInstance("SHA");
md.update(signature.toByteArray());
return android.util.Base64.encodeToString(md.digest(), android.util.Base64.NO_WRAP);
} catch (NoSuchAlgorithmException e) {
//Log.w(TAG, "Unable to get MessageDigest. signature=" + signature, e);
}
}
return null;
}
MarketDetector.java 文件源码
项目:buildAPKsSamples
阅读 28
收藏 0
点赞 0
评论 0
public static int detect(Context c) {
if (Build.VERSION.SDK_INT < 5)
return APPSTORE;
PackageManager pm = c.getPackageManager();
String installer = pm.getInstallerPackageName(c.getPackageName());
if (installer != null && installer.equals("com.android.vending"))
return MARKET;
if (Build.MODEL.equalsIgnoreCase("Kindle Fire"))
return APPSTORE;
try {
if (pm.getPackageInfo("com.amazon.venezia", 0) != null)
return APPSTORE;
} catch (NameNotFoundException e) {
}
return MARKET;
}
VPackageManagerService.java 文件源码
项目:VirtualHook
阅读 35
收藏 0
点赞 0
评论 0
@Override
protected ResolveInfo newResult(VPackage.ServiceIntentInfo filter, int match, int userId) {
final VPackage.ServiceComponent service = filter.service;
PackageSetting ps = (PackageSetting) service.owner.mExtras;
ServiceInfo si = PackageParserEx.generateServiceInfo(service, mFlags, ps.readUserState(userId), userId);
if (si == null) {
return null;
}
final ResolveInfo res = new ResolveInfo();
res.serviceInfo = si;
if ((mFlags & PackageManager.GET_RESOLVED_FILTER) != 0) {
res.filter = filter.filter;
}
res.priority = filter.filter.getPriority();
res.preferredOrder = service.owner.mPreferredOrder;
res.match = match;
res.isDefault = filter.hasDefault;
res.labelRes = filter.labelRes;
res.nonLocalizedLabel = filter.nonLocalizedLabel;
res.icon = filter.icon;
return res;
}
IconUtils.java 文件源码
项目:simple-share-android
阅读 45
收藏 0
点赞 0
评论 0
public static Drawable loadPackagePathIcon(Context context, String path, String mimeType){
int icon = sMimeIcons.get(mimeType);
if (path != null) {
final PackageManager pm = context.getPackageManager();
try {
final PackageInfo packageInfo = pm.getPackageArchiveInfo(path, PackageManager.GET_ACTIVITIES);
if (packageInfo != null) {
packageInfo.applicationInfo.sourceDir = packageInfo.applicationInfo.publicSourceDir = path;
// know issue with nine patch image instead of drawable
return pm.getApplicationIcon(packageInfo.applicationInfo);
}
} catch (Exception e) {
return ContextCompat.getDrawable(context, icon);
}
} else {
return ContextCompat.getDrawable(context, icon);
}
return null;
}
ApplicationInfoLoader.java 文件源码
项目:Paper-Launcher
阅读 33
收藏 0
点赞 0
评论 0
public static List<ApplicationInfo> loadAppList(Context context) {
List<ApplicationInfo> applicationInfoList = context.getPackageManager().getInstalledApplications(PackageManager.GET_META_DATA);
Collections.sort(applicationInfoList, new ApplicationInfo.DisplayNameComparator(context.getPackageManager()));
final ArrayList<ApplicationInfo> filteredApplicationInfoList = new ArrayList<>();
for (ApplicationInfo applicationInfo : applicationInfoList) {
if (context.getPackageManager().getLaunchIntentForPackage(applicationInfo.packageName) == null
|| applicationInfo.packageName.equals(context.getPackageName())) {
continue;
}
filteredApplicationInfoList.add(applicationInfo);
}
return filteredApplicationInfoList;
}
a.java 文件源码
项目:ProgressManager
阅读 27
收藏 0
点赞 0
评论 0
private void dispatchRequestPermissionsResultToFragment(int requestCode, Intent data,
Fragment fragment) {
// If the package installer crashed we may have not data - best effort.
String[] permissions = (data != null) ? data.getStringArrayExtra(
PackageManager.EXTRA_REQUEST_PERMISSIONS_NAMES) : new String[0];
final int[] grantResults = (data != null) ? data.getIntArrayExtra(
PackageManager.EXTRA_REQUEST_PERMISSIONS_RESULTS) : new int[0];
fragment.onRequestPermissionsResult(requestCode, permissions, grantResults);
}
SelectPictureActivity.java 文件源码
项目:Clases-2017c1
阅读 37
收藏 0
点赞 0
评论 0
public static void grantPermissionsToUri(Context context, Intent intent, Uri uri) {
List<ResolveInfo> resInfoList = context.getPackageManager().queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY);
for (ResolveInfo resolveInfo : resInfoList) {
String packageName = resolveInfo.activityInfo.packageName;
context.grantUriPermission(packageName, uri, Intent.FLAG_GRANT_WRITE_URI_PERMISSION | Intent.FLAG_GRANT_READ_URI_PERMISSION);
}
}
PhoneUtils.java 文件源码
项目:BaseCore
阅读 36
收藏 0
点赞 0
评论 0
public static boolean checkPermission(Context context, String permission) {
boolean result = false;
if (Build.VERSION.SDK_INT >= 23) {
try {
Class<?> clazz = Class.forName("android.content.Context");
Method method = clazz.getMethod("checkSelfPermission", String.class);
int rest = (Integer) method.invoke(context, permission);
if (rest == PackageManager.PERMISSION_GRANTED) {
result = true;
} else {
result = false;
}
} catch (Exception e) {
result = false;
}
} else {
PackageManager pm = context.getPackageManager();
if (pm.checkPermission(permission, context.getPackageName()) == PackageManager.PERMISSION_GRANTED) {
result = true;
}
}
return result;
}
TripleFragment.java 文件源码
项目:punti-burraco
阅读 29
收藏 0
点赞 0
评论 0
@Override
public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) {
switch (requestCode) {
case STORAGE_PERMISSION_SCREENSHOT:
{
// If request is cancelled, the result arrays are empty.
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
// permission was granted, yay!
openScreen();
} else {
// permission denied, boo!
Toast.makeText(getActivity(), getString(R.string.marshmallow_alert_2), Toast.LENGTH_LONG).show();
}
return;
}
// other 'case' lines to check for other
// permissions this app might request
}
}
GPSTrackControllerDialogActivity.java 文件源码
项目:AndiCar
阅读 33
收藏 0
点赞 0
评论 0
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String permissions[], @NonNull int[] grantResults) {
if (grantResults.length == 0 || grantResults[0] == PackageManager.PERMISSION_DENIED) {
if (requestCode == ConstantValues.REQUEST_LOCATION_ACCESS) {
Toast.makeText(this, R.string.error_069, Toast.LENGTH_LONG).show();
}
else {
Toast.makeText(this, R.string.error_070, Toast.LENGTH_LONG).show();
}
finish();
} else {
// if (ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_DENIED) {
if (!FileUtils.isFileSystemAccessGranted(this)) {
ActivityCompat.requestPermissions(this,
new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, ConstantValues.REQUEST_ACCESS_EXTERNAL_STORAGE);
}
}
}
ManifestParser.java 文件源码
项目:MVVMFrames
阅读 33
收藏 0
点赞 0
评论 0
public List<ConfigModule> parse() {
List<ConfigModule> modules = new ArrayList<ConfigModule>();
try {
ApplicationInfo appInfo = context.getPackageManager().getApplicationInfo(
context.getPackageName(), PackageManager.GET_META_DATA);
if (appInfo.metaData != null) {
for (String key : appInfo.metaData.keySet()) {
if (MODULE_VALUE.equals(appInfo.metaData.get(key))) {
modules.add(parseModule(key));
}
}
}
} catch (PackageManager.NameNotFoundException e) {
throw new RuntimeException("Unable to find metadata to parse ConfigModule", e);
}
return modules;
}
PermissionHelper.java 文件源码
项目:localcloud_fe
阅读 33
收藏 0
点赞 0
评论 0
private static void deliverPermissionResult(CordovaPlugin plugin, int requestCode, String[] permissions) {
// Generate the request results
int[] requestResults = new int[permissions.length];
Arrays.fill(requestResults, PackageManager.PERMISSION_GRANTED);
try {
Method onRequestPermissionResult = CordovaPlugin.class.getDeclaredMethod(
"onRequestPermissionResult", int.class, String[].class, int[].class);
onRequestPermissionResult.invoke(plugin, requestCode, permissions, requestResults);
} catch (NoSuchMethodException noSuchMethodException) {
// Should never be caught since the plugin must be written for cordova-android 5.0.0+ if it
// made it to this point
LOG.e(LOG_TAG, "NoSuchMethodException when delivering permissions results", noSuchMethodException);
} catch (IllegalAccessException illegalAccessException) {
// Should never be caught; this is a public method
LOG.e(LOG_TAG, "IllegalAccessException when delivering permissions results", illegalAccessException);
} catch(InvocationTargetException invocationTargetException) {
// This method may throw a JSONException. We are just duplicating cordova-android's
// exception handling behavior here; all it does is log the exception in CordovaActivity,
// print the stacktrace, and ignore it
LOG.e(LOG_TAG, "InvocationTargetException when delivering permissions results", invocationTargetException);
}
}
MainActivity.java 文件源码
项目:Paper-Melody
阅读 28
收藏 0
点赞 0
评论 0
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == REQUEST_PERMISSION) {
if (android.os.Build.VERSION.SDK_INT >= 23) {
for (int i = 0; i < permissions.length; ++i) {
// 检查该权限是否已经获取
int per = ContextCompat.checkSelfPermission(this, permissions[i]);
// 权限是否已经 授权 GRANTED---授权 DINIED---拒绝
if (per != PackageManager.PERMISSION_GRANTED) {
// 提示用户应该去应用设置界面手动开启权限
showDialogTipUserGoToAppSetting();
} else {
if (dialog != null && dialog.isShowing()) {
dialog.dismiss();
}
}
}
}
}
}
EditImageAttachmentActivity.java 文件源码
项目:Remindy
阅读 33
收藏 0
点赞 0
评论 0
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
switch (requestCode){
case REQUEST_TAKE_PICTURE_PERMISSION:
for (int result : grantResults) {
if(result != PackageManager.PERMISSION_GRANTED) {
BaseTransientBottomBar.BaseCallback<Snackbar> callback = new BaseTransientBottomBar.BaseCallback<Snackbar>() {
@Override
public void onDismissed(Snackbar transientBottomBar, int event) {
super.onDismissed(transientBottomBar, event);
handleImageCapture();
}
};
SnackbarUtil.showSnackbar(mContainer, SnackbarUtil.SnackbarType.NOTICE, R.string.activity_edit_image_attachment_snackbar_error_no_permissions, SnackbarUtil.SnackbarDuration.SHORT, callback);
return;
}
}
//Permissions granted
dispatchTakePictureIntent();
break;
}
}
ContactLoadingActivity.java 文件源码
项目:chips-input-layout
阅读 29
收藏 0
点赞 0
评论 0
protected void loadContactsWithRuntimePermission() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
// Runtime permission must be granted for
// (1) Reading contacts
// (2) Sending SMS messages
String[] permissions = new String[] {
Manifest.permission.READ_CONTACTS,
Manifest.permission.READ_PHONE_STATE
};
// If the app doesn't have all the permissions above, request for them!
if (ContextCompat.checkSelfPermission(this, Manifest.permission.READ_CONTACTS) == PackageManager.PERMISSION_GRANTED
&& ContextCompat.checkSelfPermission(this, Manifest.permission.READ_PHONE_STATE) == PackageManager.PERMISSION_GRANTED) {
getSupportLoaderManager().initLoader(0, null, this);
} else {
ActivityCompat.requestPermissions(this, permissions, 0);
}
} else {
// APIs older than Lollipop don't have runtime permissions :)
getSupportLoaderManager().initLoader(0, null, this);
}
}
FeedbackActivity.java 文件源码
项目:EasyReader
阅读 44
收藏 0
点赞 0
评论 0
/**
* 判断 用户是否安装QQ客户端
*/
public static boolean hasQQClientAvailable(Context context) {
final PackageManager packageManager = context.getPackageManager();
List<PackageInfo> pinfo = packageManager.getInstalledPackages(0);
if (pinfo != null) {
for (int i = 0; i < pinfo.size(); i++) {
String pn = pinfo.get(i).packageName;
LogUtils.e("pn = " + pn);
if (pn.equalsIgnoreCase("com.tencent.qqlite") || pn.equalsIgnoreCase("com.tencent.mobileqq")) {
return true;
}
}
}
return false;
}
ContactsFragment.java 文件源码
项目:fussroll
阅读 36
收藏 0
点赞 0
评论 0
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
switch (requestCode) {
case CheckForContactsPermission.MY_PERMISSIONS_REQUEST_READ_CONTACTS: {
if(grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
//Log.i("ContactsFragment", "Dialog : Permission is granted");
if(!onCreatePerm)
onCreatePerm = true;
getPhoneNumbers();
}
else {
//Log.i("ContactsFragment", "Dialog : Permission is not yet granted");
}
}
}
}
MainFragment.java 文件源码
项目:android_permission
阅读 38
收藏 0
点赞 0
评论 0
@Override
public void onClick(View v) {
int id = v.getId();
if (R.id.get_contact_btn == id) {
if (ActivityCompat.checkSelfPermission(getContext(), Manifest.permission.READ_CONTACTS) != PackageManager.PERMISSION_GRANTED) {
if (shouldShowRequestPermissionRationale(Manifest.permission.READ_CONTACTS)) {
new AlertDialog.Builder(getContext()).setMessage("xxxx")
.setCancelable(false)
.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
requestPermissions(new String[]{Manifest.permission.READ_CONTACTS}, 1);
}
}).create().show();
} else {
requestPermissions(new String[]{Manifest.permission.READ_CONTACTS}, 1);
}
} else {
readContacts();
}
}
}
PersonalUpperPresenter.java 文件源码
项目:YiZhi
阅读 29
收藏 0
点赞 0
评论 0
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions,
@NonNull int[] grantResults) {
if (requestCode == WRITE_EXTERNAL_STORAGE_REQUEST_CODE) {
if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
// Permission Granted
if (mIView != null)
mIView.gotoSystemCamera(tempFile, REQUEST_CAMERA);
}
} else if (requestCode == READ_EXTERNAL_STORAGE_REQUEST_CODE) {
if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
// Permission Granted
if (mIView != null)
mIView.gotoSystemPhoto(REQUEST_PHOTO);
}
}
}
ManifestParser.java 文件源码
项目:EazyBaseMVP
阅读 30
收藏 0
点赞 0
评论 0
public List<ConfigModule> parse() {
List<ConfigModule> configModules = new ArrayList<>();
try {
ApplicationInfo appInfo = context.getPackageManager().getApplicationInfo(context.getPackageName()
, PackageManager.GET_META_DATA);
if (appInfo.metaData != null) {
for (String key : appInfo.metaData.keySet()) {
if (MODULE_VALUE.equals(appInfo.metaData.get(key))) {
configModules.add(parseModule(key));
}
}
}
} catch (PackageManager.NameNotFoundException ex) {
throw new RuntimeException("Unable to find metadata to parse ConfigModule", ex);
}
return configModules;
}
PermissionsHelper.java 文件源码
项目:FirebasePost
阅读 32
收藏 0
点赞 0
评论 0
/**
* use for get {@link PermissionInfo} of all @param required
*
* @param context
* @param required
* @return
*/
private static List<PermissionInfo> getPermissions(Context context, List<String> required) {
List<PermissionInfo> permissionInfoList = new ArrayList<>();
PackageManager pm = context.getPackageManager();
for (String permission : required) {
PermissionInfo pinfo = null;
try {
pinfo = pm.getPermissionInfo(permission, PackageManager.GET_META_DATA);
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
continue;
}
permissionInfoList.add(pinfo);
}
return permissionInfoList;
}