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程序设计有所帮助。
