【Android】获取APK的包名

35 篇文章 0 订阅
18 篇文章 0 订阅

近期在开发一款APP,需要调用google play service,前提是安装了。虽然可以通过以下代码可以判断是否安装了,但是有时总是棋差一着。关键的包名没找着,难以对此功能实践。

 

	private boolean isApplicationExist(String packageName){
		try {
			getPackageManager().getApplicationInfo(packageName,
					PackageManager.GET_UNINSTALLED_PACKAGES);
			return true;
		} catch (NameNotFoundException e) {
			return false;
		}
	}


经过反复的研究之后,发现通过APK可以获取包名。提供以下两种方法以供大家参考:

 

1.暴力方式:将APK转化重命名为zip格式,解压之后即可看到;

2.技术手段:研究Android API发现,官方提供的PackageManager,PackageInfo,ApplicationInfo这三个类获取APK相关的信息。代码如下:

 

private String getApkPackageName(String filePath){
		PackageManager pm = getPackageManager();
		PackageInfo info = pm.getPackageArchiveInfo(filePath,
				PackageManager.GET_ACTIVITIES);
		if (info != null) {
			ApplicationInfo appInfo = info.applicationInfo;
			String appName = pm.getApplicationLabel(appInfo).toString();
			String packname = appInfo.packageName;
			String version = info.versionName;
			return packname;
		} else {
			return null;
		}
	}

个人愚见,如有更好的方法,还望告之。
 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值