本文實例講述了Android編程實現應用獲取包名、版本號、權限等信息的方法。分享給大家供大家參考,具體如下:
/*** 獲取當前應用程序的包名* @param context 上下文對象* @return 返回包名*/public static String getAppProcessName(Context context) { //當前應用pid int pid = android.os.Process.myPid(); //任務管理類 ActivityManager manager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE); //遍歷所有應用 List<ActivityManager.RunningAppProcessInfo> infos = manager.getRunningAppProcesses(); for (ActivityManager.RunningAppProcessInfo info : infos) { if (info.pid == pid)//得到當前應用 return info.processName;//返回包名 } return "";}/*** 獲取程序 圖標* @param context* @param packname 應用包名* @return*/public Drawable getAppIcon(Context context,String packname){ try { //包管理操作管理類 PackageManager pm = context.getPackageManager(); //獲取到應用信息 ApplicationInfo info = pm.getApplicationInfo(packname, 0); return info.loadIcon(pm); } catch (NameNotFoundException e) { e.printStackTrace(); } return null;}/*** 獲取程序的版本號* @param context* @param packname* @return*/public String getAppVersion(Context context,String packname){ //包管理操作管理類 PackageManager pm = context.getPackageManager(); try { PackageInfo packinfo = pm.getPackageInfo(packname, 0); return packinfo.versionName; } catch (NameNotFoundException e) { e.printStackTrace(); } return packname;}/*** 獲取程序的名字* @param context* @param packname* @return*/public String getAppName(Context context,String packname){ //包管理操作管理類 PackageManager pm = context.getPackageManager(); try { ApplicationInfo info = pm.getApplicationInfo(packname, 0); return info.loadLabel(pm).toString(); } catch (NameNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } return packname;}/** 獲取程序的權限*/public String[] getAllPermissions(Context context,String packname){ try { //包管理操作管理類 PackageManager pm = context.getPackageManager(); PackageInfo packinfo = pm.getPackageInfo(packname, PackageManager.GET_PERMISSIONS); //獲取到所有的權限 return packinfo.requestedPermissions; } catch (NameNotFoundException e) { e.printStackTrace(); } return null;}/*** 獲取程序的簽名* @param context* @param packname* @return*/public static String getAppSignature(Context context,String packname){ try { //包管理操作管理類 PackageManager pm = context.getPackageManager(); PackageInfo packinfo = pm.getPackageInfo(packname, PackageManager.GET_SIGNATURES); //獲取當前應用簽名 return packinfo.signatures[0].toCharsString(); } catch (NameNotFoundException e) { e.printStackTrace(); } return packname;}/*** 獲取當前展示 的Activity名稱* @return*/private static String getCurrentActivityName(Context context){ ActivityManager activityManager=(ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE); String runningActivity=activityManager.getRunningTasks(1).get(0).topActivity.getClassName(); return runningActivity;}希望本文所述對大家Android程序設計有所幫助。
新聞熱點
疑難解答