Android编程实现应用获取包名、版本号、权限等信息的方法
本文实例讲述了Android编程实现应用获取包名、版本号、权限等信息的方法。分享给大家供大家参考,具体如下:
/** *获取当前应用程序的包名 *@paramcontext上下文对象 *@return返回包名 */ publicstaticStringgetAppProcessName(Contextcontext){ //当前应用pid intpid=android.os.Process.myPid(); //任务管理类 ActivityManagermanager=(ActivityManager)context.getSystemService(Context.ACTIVITY_SERVICE); //遍历所有应用 Listinfos=manager.getRunningAppProcesses(); for(ActivityManager.RunningAppProcessInfoinfo:infos){ if(info.pid==pid)//得到当前应用 returninfo.processName;//返回包名 } return""; } /** *获取程序图标 *@paramcontext *@parampackname应用包名 *@return */ publicDrawablegetAppIcon(Contextcontext,Stringpackname){ try{ //包管理操作管理类 PackageManagerpm=context.getPackageManager(); //获取到应用信息 ApplicationInfoinfo=pm.getApplicationInfo(packname,0); returninfo.loadIcon(pm); }catch(NameNotFoundExceptione){ e.printStackTrace(); } returnnull; } /** *获取程序的版本号 *@paramcontext *@parampackname *@return */ publicStringgetAppVersion(Contextcontext,Stringpackname){ //包管理操作管理类 PackageManagerpm=context.getPackageManager(); try{ PackageInfopackinfo=pm.getPackageInfo(packname,0); returnpackinfo.versionName; }catch(NameNotFoundExceptione){ e.printStackTrace(); } returnpackname; } /** *获取程序的名字 *@paramcontext *@parampackname *@return */ publicStringgetAppName(Contextcontext,Stringpackname){ //包管理操作管理类 PackageManagerpm=context.getPackageManager(); try{ ApplicationInfoinfo=pm.getApplicationInfo(packname,0); returninfo.loadLabel(pm).toString(); }catch(NameNotFoundExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); } returnpackname; } /* *获取程序的权限 */ publicString[]getAllPermissions(Contextcontext,Stringpackname){ try{ //包管理操作管理类 PackageManagerpm=context.getPackageManager(); PackageInfopackinfo=pm.getPackageInfo(packname,PackageManager.GET_PERMISSIONS); //获取到所有的权限 returnpackinfo.requestedPermissions; }catch(NameNotFoundExceptione){ e.printStackTrace(); } returnnull; } /** *获取程序的签名 *@paramcontext *@parampackname *@return */ publicstaticStringgetAppSignature(Contextcontext,Stringpackname){ try{ //包管理操作管理类 PackageManagerpm=context.getPackageManager(); PackageInfopackinfo=pm.getPackageInfo(packname,PackageManager.GET_SIGNATURES); //获取当前应用签名 returnpackinfo.signatures[0].toCharsString(); }catch(NameNotFoundExceptione){ e.printStackTrace(); } returnpackname; } /** *获取当前展示的Activity名称 *@return */ privatestaticStringgetCurrentActivityName(Contextcontext){ ActivityManageractivityManager=(ActivityManager)context.getSystemService(Context.ACTIVITY_SERVICE); StringrunningActivity=activityManager.getRunningTasks(1).get(0).topActivity.getClassName(); returnrunningActivity; }
更多关于Android相关内容感兴趣的读者可查看本站专题:《Android开发入门与进阶教程》、《Android调试技巧与常见问题解决方法汇总》、《Android基本组件用法总结》、《Android视图View技巧总结》、《Android布局layout技巧总结》及《Android控件用法总结》
希望本文所述对大家Android程序设计有所帮助。