网上很多资料,也参考了很多,最终自己实践过,行得通,直接上代码
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;// 得到安装包名称
加上就没事了,apk名称也能正确获取,具体为什么,本人还没得到答案,请大家不吝赐教。