小編給大家分享一下Android編程如何實現(xiàn)應(yīng)用獲取包名、版本號、權(quán)限等信息,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價比興隆臺網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式興隆臺網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋興隆臺地區(qū)。費用合理售后完善,10余年實體公司更值得信賴。
具體如下:
/** * 獲取當前應(yīng)用程序的包名 * @param context 上下文對象 * @return 返回包名 */ public static String getAppProcessName(Context context) { //當前應(yīng)用pid int pid = android.os.Process.myPid(); //任務(wù)管理類 ActivityManager manager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE); //遍歷所有應(yīng)用 Listinfos = manager.getRunningAppProcesses(); for (ActivityManager.RunningAppProcessInfo info : infos) { if (info.pid == pid)//得到當前應(yīng)用 return info.processName;//返回包名 } return ""; } /** * 獲取程序 圖標 * @param context * @param packname 應(yīng)用包名 * @return */ public Drawable getAppIcon(Context context,String packname){ try { //包管理操作管理類 PackageManager pm = context.getPackageManager(); //獲取到應(yīng)用信息 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; } /* * 獲取程序的權(quán)限 */ public String[] getAllPermissions(Context context,String packname){ try { //包管理操作管理類 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 { //包管理操作管理類 PackageManager pm = context.getPackageManager(); PackageInfo packinfo = pm.getPackageInfo(packname, PackageManager.GET_SIGNATURES); //獲取當前應(yīng)用簽名 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是一種基于Linux內(nèi)核的自由及開放源代碼的操作系統(tǒng),主要使用于移動設(shè)備,如智能手機和平板電腦,由美國Google公司和開放手機聯(lián)盟領(lǐng)導(dǎo)及開發(fā)。
以上是“Android編程如何實現(xiàn)應(yīng)用獲取包名、版本號、權(quán)限等信息”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學習更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!