我是靠谱客的博主 喜悦芹菜,最近开发中收集的这篇文章主要介绍Android下得到已安装Application信息,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

在上一篇blog中,谈到如何利用APK archive文件得到相应信息。(当时发现例如ProcessName,DataDir等信息,其实是无法得到的).
当前咱们看看如何通过系统取得已经安装的Application的相关信息。


0.基础知识:
PackageManager class有一个方法:
public abstract ApplicationInfo getApplicationInfo (String packageName, int flags)
它向系统查询包名为:PackageName(参数一)的Application信息。注意,与之前 getPackageArchiveInfo()是通过APK Archive文件中main.xml得到信息不通,getApplicationInfo()是向系统查选,所以如果此Application没有被安装,则会返回异常:PackageManager.NameNotFoundException。


packageName可以通过APK文件得到。


1. 得到Application相关信息:
try {
ApplicationInfo AI = PM.getApplicationInfo(PI.packageName, PackageManager.GET_META_DATA | PackageManager.GET_SHARED_LIBRARY_FILES);


//dataDir: 分配给此Application的存放数据的位置。通常是:/data/data/packageName/
Log.w("3DiJoy", "Appliction DataDir:" + AI.dataDir);

//SourceDir: 安装这个包后的存放位置。 因为APK安装后,会讲archive文件存放在某个目录(一般程序和//root程序位置不同)。 作为读取资源是的位置。此位置通常在/data/app/pakcageName.apk
Log.w("3DiJoy", "Application SourceDir:" + AI.sourceDir);

// Application Name: 此处是从main.xml中得到。如果没有,则为空
Log.w("3DiJoy", "Application Name:" + AI.name);

// 也是从main.xml中得到。
Log.w("3DiJoy", String.format("minSDK Version: [%d]", AI.targetSdkVersion));

//processName. 此Application 运行时的ProcessName. 如果main.xml中有"process" attribute。则为这个值
//如果没有,则与PackageName相同
Log.w("3DiJoy", "Application in porcessName is :" + AI.processName);

//PackageName: 此Application所在的PckageName。
Log.w("3DiJoy", "Application in Package " + AI.packageName);
} catch (NameNotFoundException e) {
// TODO Auto-generated catch block
Log.e("3DiJoy", "This Package not installed");
e.printStackTrace();
}


注意:这里肯定能够得到ProcessName。


2. 得到Package信息:
上面只得到了Application系列信息,Package系列信息并为得到,则可以这样处理:
PackageManager有个方法:
public abstract PackageInfo getPackageInfo (String packageName, int flags)
它向系统查询包名为:PackageName(参数一)的PackageInfo信息。
注意,只有已经安装的Package,才能正常得到信息。否则发生异常。PackageManager.NameNotFoundException。

因为返回值为PackageInfo。 所以取值与上一blog类似。就不详谈了。

http://blog.sina.com.cn/s/blog_602f877001017qm2.html

转载于:https://www.cnblogs.com/eustoma/p/4059587.html

最后

以上就是喜悦芹菜为你收集整理的Android下得到已安装Application信息的全部内容,希望文章能够帮你解决Android下得到已安装Application信息所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(56)

评论列表共有 0 条评论

立即
投稿
返回
顶部