package com.team.zhuoke.utils; import android.content.Context; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.os.Bundle; import java.util.ArrayList; import java.util.Arrays; import java.util.List; /** * @author: 范建海 * @createTime: 2016/10/30 13:51 * @className: ManifestUtil * @description: 用于读取AndroidManifest.xml文件中的值 * @changed by: */ public class ManifestUtil { /** * 获得包名 * * @param context 上下文 * @return 包名 */ public static String getPackageName(Context context) { try { return context.getPackageManager().getPackageInfo(context.getPackageName(), 0).packageName; } catch (PackageManager.NameNotFoundException e) { e.printStackTrace(); } return null; } /** * 获得版本名 * * @param context 上下文 * @return 版本名 */ public static String getVersionName(Context context) { try { return context.getPackageManager().getPackageInfo(context.getPackageName(), 0).versionName; } catch (PackageManager.NameNotFoundException e) { e.printStackTrace(); } return null; } /** * 获得版本号 * * @param context 上下文 * @return 版本号 */ public static int getVersionCode(Context context) { try { return context.getPackageManager().getPackageInfo(context.getPackageName(), 0).versionCode; } catch (PackageManager.NameNotFoundException e) { e.printStackTrace(); } return 0; } /** * 获取application层级的metadata * * @param context 上下文 * @param key key * @return value */ public static String getApplicationMetaData(Context context, String key) { try { Bundle metaData = context.getPackageManager().getApplicationInfo(context.getPackageName(), PackageManager.GET_META_DATA).metaData; return metaData.get(key).toString(); } catch (PackageManager.NameNotFoundException e) { e.printStackTrace(); } return null; } /** * 判断应用是否申明某个权限 * @param context 上下文 * @param permission Manifest.permission里的值 * @return 是否申明某个权限 */ public static boolean hasPermission(Context context,String permission){ return (PackageManager.PERMISSION_GRANTED) == (context.getPackageManager().checkPermission(permission, context.getPackageName())); } /** * 获得应用申明的所有权限列表 * @param context 上下文 * @return 获得应用申明的所有权限列表 */ public static List<String> getPermissions(Context context){ List<String> permissions=new ArrayList<String>(); try { PackageInfo packageInfo = context.getPackageManager().getPackageInfo(context.getPackageName(), PackageManager.GET_PERMISSIONS); permissions.addAll(Arrays.asList(packageInfo.requestedPermissions)); } catch (PackageManager.NameNotFoundException e) { e.printStackTrace(); } return permissions; } }