A应用获取未安装B应用的名称,包名,图标

网上很多资料,也参考了很多,最终自己实践过,行得通,直接上代码

public void apkMessage() {

		PackageManager pm = this.getPackageManager();
		PackageInfo info = pm.getPackageArchiveInfo(mSavePath+"/"+APKNAME,
				PackageManager.GET_ACTIVITIES);
		info.applicationInfo.sourceDir = mSavePath+"/"+APKNAME;// 得到安装包名称
		info.applicationInfo.publicSourceDir = mSavePath+"/"+APKNAME;// 得到安装包名称

		if (info != null) {	
			String packagename = info.packageName;// 得到安装包名称
			Log.i("--packagename",packagename);
			Drawable img = null;
			try {
				// 得到图标信息
				img = pm.getApplicationIcon(info.packageName);
			} catch (NameNotFoundException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			ApplicationInfo appInfo = info.applicationInfo;	
			String name = pm.getApplicationLabel(appInfo).toString();//label
			Log.i("--name",name);


		}
	}

一开始还没加这两行的时候出现提示,而且不能正确获取apk名称,即label名。

info.applicationInfo.sourceDir = mSavePath+"/"+APKNAME;// 得到安装包名称
		info.applicationInfo.publicSourceDir = mSavePath+"/"+APKNAME;// 得到安装包名称

A应用获取未安装B应用的名称,包名,图标_第1张图片

加上就没事了,apk名称也能正确获取,具体为什么,本人还没得到答案,请大家不吝赐教。


你可能感兴趣的:(入口文件)