本文實(shí)例講述了Android編程實(shí)現(xiàn)應(yīng)用獲取包名、版本號(hào)、權(quán)限等信息的方法。分享給大家供大家參考,具體如下:
/*** 獲取當(dāng)前應(yīng)用程序的包名* @param context 上下文對(duì)象* @return 返回包名*/public static String getAppProcessName(Context context) { //當(dāng)前應(yīng)用pid int pid = android.os.Process.myPid(); //任務(wù)管理類(lèi) ActivityManager manager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE); //遍歷所有應(yīng)用 List<ActivityManager.RunningAppProcessInfo> infos = manager.getRunningAppProcesses(); for (ActivityManager.RunningAppProcessInfo info : infos) { if (info.pid == pid)//得到當(dāng)前應(yīng)用 return info.processName;//返回包名 } return "";}/*** 獲取程序 圖標(biāo)* @param context* @param packname 應(yīng)用包名* @return*/public Drawable getAppIcon(Context context,String packname){ try { //包管理操作管理類(lèi) PackageManager pm = context.getPackageManager(); //獲取到應(yīng)用信息 ApplicationInfo info = pm.getApplicationInfo(packname, 0); return info.loadIcon(pm); } catch (NameNotFoundException e) { e.printStackTrace(); } return null;}/*** 獲取程序的版本號(hào)* @param context* @param packname* @return*/public String getAppVersion(Context context,String packname){ //包管理操作管理類(lèi) 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){ //包管理操作管理類(lèi) 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;}/** 獲取程序的權(quán)限*/public String[] getAllPermissions(Context context,String packname){ try { //包管理操作管理類(lèi) PackageManager pm = context.getPackageManager(); PackageInfo packinfo = pm.getPackageInfo(packname, PackageManager.GET_PERMISSIONS); //獲取到所有的權(quán)限 return packinfo.requestedPermissions; } catch (NameNotFoundException e) { e.printStackTrace(); } return null;}/*** 獲取程序的簽名* @param context* @param packname* @return*/public static String getAppSignature(Context context,String packname){ try { //包管理操作管理類(lèi) PackageManager pm = context.getPackageManager(); PackageInfo packinfo = pm.getPackageInfo(packname, PackageManager.GET_SIGNATURES); //獲取當(dāng)前應(yīng)用簽名 return packinfo.signatures[0].toCharsString(); } catch (NameNotFoundException e) { e.printStackTrace(); } return packname;}/*** 獲取當(dāng)前展示 的Activity名稱(chēng)* @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;}更多關(guān)于Android相關(guān)內(nèi)容感興趣的讀者可查看本站專(zhuān)題:《Android開(kāi)發(fā)入門(mén)與進(jìn)階教程》、《Android調(diào)試技巧與常見(jiàn)問(wèn)題解決方法匯總》、《Android基本組件用法總結(jié)》、《Android視圖View技巧總結(jié)》、《Android布局layout技巧總結(jié)》及《Android控件用法總結(jié)》
希望本文所述對(duì)大家Android程序設(shè)計(jì)有所幫助。
新聞熱點(diǎn)
疑難解答
圖片精選