小编给大家分享一下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是一种基于Linux内核的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由美国Google公司和开放手机联盟领导及开发。
以上是“Android编程如何实现应用获取包名、版本号、权限等信息”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。