iis服务器助手广告广告
返回顶部
首页 > 资讯 > 移动开发 >Android通过包名获取应用信息
  • 258
分享到

Android通过包名获取应用信息

Android 2022-06-06 13:06:49 258人浏览 安东尼
摘要

Android应用/游戏上架国内渠道,国外GooglePlay接入的登录或者支付验证需要验证包名,versionCode,签名等应用信息,为了快

Android应用/游戏上架国内渠道,国外GooglePlay接入的登录或者支付验证需要验证包名,versionCode,签名等应用信息,为了快速检查应用信息以工具化获取应用信息。

tips:在Activity下直接用getPackageManager可获取PackageManager实例

1、应用名:

getPackageManager().getApplicationInfo(packName,0).loadLabel(getPackageManager());
返回CharSequence
2、应用Icon:
getPackageManager().getApplicationInfo(packName,0).loadIcon(getPackageManager());
返回drawable
3、VersionCode
getPackageManager().getPackageInfo(packName,0).versionCode

4、VersionName:
getPackageManager().getPackageInfo(packName,0).versionName

5、targetSdkVersion:
getPackageManager().getPackageInfo(packName,0).applicationInfo.targetSdkVersion

6、minSDKVersion:
getPackageManager().getPackageInfo(packName,0).applicationInfo.minSdkVersion

7、启动项:
getPackageManager().getLaunchIntentForPackage(packName)
返回Intent,可用于跳转
获取启动项类名:
getPackageManager().getLaunchIntentForPackage(packName).getComponent().getClassName()

8、权限:
getPackageManager().getPackageInfo(packName,PackageManager.GET_PERMISSIONS).requestedPermissions
返回类型为字符串数组
9、activity组件:
getPackageManager().getPackageInfo(packName, PackageManager.GET_ACTIVITIES).activities
返回ActivityInfo数据类

PackageInfo packageInfo = getPackageManager().getPackageInfo(packName, PackageManager.GET_ACTIVITIES)  
for (ActivityInfo activityInfo : packageInfo.activities){
//获取activity名称
Log.d(TAG,activityInfo.name+"\n");
 }

10、service组件:

getPackageManager().getPackageInfo(packName, PackageManager.GET_SERVICES).services
返回ServiceInfo数据类

PackageInfo packageInfo = getPackageManager().getPackageInfo(packName, PackageManager.GET_SERVICES)  
for (ServiceInfo serviceInfo : packageInfo.services){
//获取service名称
Log.d(TAG,serviceInfo.name+"\n");
 }

11、provider组件:

getPackageManager().getPackageInfo(packName, PackageManager.GET_PROVIDERS).providers
返回ProviderInfo数据类

PackageInfo packageInfo = getPackageManager().getPackageInfo(packName, PackageManager.GET_PROVIDERS)  
for (ProviderInfo providerInfo : packageInfo.providers){
//获取provider名称
Log.d(TAG,activityInfo.name+"\n");
 }

12、获取keyhash:

 
    public static String geTKEyhash(Activity activity, String packName){
        String KeyHash = "";
        try {
            int i = 0;
            PackageInfo info = activity.getPackageManager().getPackageInfo( packName,  PackageManager.GET_SIGNATURES);
            for (Signature signature : info.signatures) {
                i++;
                MessageDigest md = MessageDigest.getInstance("SHA");
                md.update(signature.toByteArray());
                KeyHash = Base64.encodeToString(md.digest(), Base64.DEFAULT);
                //KeyHash 
                Log.e(tag, "KeyHash: " + KeyHash);
            }
        }
        catch (Exception e) {
            Log.e(tag,"获取keyhash失败"+e.getMessage());
            KeyHash = "";
        }
        return KeyHash;
    }

13、获取签名MD5,SHA1,SHA256:


    public static String getSignatures(Activity activity, String packName, String type){
        String sha1 = "";
        PackageInfo info = null;
        try {
            info = activity.getPackageManager().getPackageInfo(packName, PackageManager.GET_SIGNATURES);
            byte[] cert = info.signatures[0].toByteArray();
            //type:MD5,SHA1,SHA256
            MessageDigest md = MessageDigest.getInstance(type);
            byte[] publicKey = md.digest(cert);
            StringBuffer hexString = new StringBuffer();
            for (int i = 0; i < publicKey.length; i++) {
                String appendString = Integer.toHexString(0xFF & publicKey[i])
                        .toUpperCase(Locale.US);
                if (appendString.length() == 1){
                    hexString.append("0");
                }
                hexString.append(appendString);
                hexString.append(":");
            }
            String result = hexString.toString();
            Log.d(tag,"SHA1:"+result.substring(0, result.length()-1));
            return result.substring(0, result.length()-1);
        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();
        }
        catch (PackageManager.NameNotFoundException e) {
            e.printStackTrace();
        }
        return null;
    }

14、获取META_DATA标签指定key的value

    
    public static String getMeta(Activity activity, String packName, String key){
        ApplicationInfo applicationInfo = null;
        String value = "";
        try {
            applicationInfo = activity.getPackageManager().getApplicationInfo(packName,PackageManager.GET_META_DATA);
            value = String.valueOf(applicationInfo.metaData.get(key));
        } catch (PackageManager.NameNotFoundException e) {
            e.printStackTrace();
        }catch (NullPointerException e){
            e.printStackTrace();
        }
        return value;
    }

作者:Gufra_Yin


--结束END--

本文标题: Android通过包名获取应用信息

本文链接: https://www.lsjlt.com/news/29047.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 由于应用包名签名信息校验不通过,无法分享到微信
    uniapp报错:由于应用包名签名信息校验不通过,无法分享到微信。 无论是调试微信客服、微信登录、微信支付还是分享到微信,都会出现这种报错,一般都是这几个参数配置错误。 第一步,排查appid 仔细 检查申请应用的appid是否和配置的a...
    99+
    2023-08-17
    微信 uni-app 小程序
  • Android cpu信息获取/修改
    CPU信息查看 通过 cat proc/cpuinfo 查看 processor : 7BogoMIPS : 38.40Features : fp asimd evtstrm aes pmull sh...
    99+
    2023-09-30
    android
  • Android 应用获取签名MD5
     生成Android平台签名证书(.keystore)生成指南 根据uniapp官方的文档生成签名后,查看当前证书信息: keytool -list -v -keystore test.keystore 会输出以下格式信息: 会发现证...
    99+
    2023-09-11
    笔记
  • Android 中怎么利用ApplicationInfo获取应用程序信息
    这篇文章给大家介绍Android 中怎么利用ApplicationInfo获取应用程序信息,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。Android ApplicationInfo 应用程序信息1、简述1 ...
    99+
    2023-05-30
    android
  • android调用webservice接口获取信息
    我的有一篇博客上讲了如何基于CXF搭建webservice,service层的接口会被部署到tomcat上,这一篇我就讲一下如何在安卓中调用这些接口传递参数。在lib中放入ksoap2的jar包并导入在xml 配置文件中加入:<!--...
    99+
    2023-05-30
    android webservice 接口
  • Java中如何通过反射获取类的信息
    这篇文章主要为大家展示了Java中如何通过反射获取类的信息,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带大家一起来研究并学习一下“Java中如何通过反射获取类的信息”这篇文章吧。Java的特点有哪些Java的特点有哪些1....
    99+
    2023-06-06
  • 如何通过grep 获取MySQL错误日志信息
    小编给大家分享一下如何通过grep 获取MySQL错误日志信息,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!为方便维护MySQL...
    99+
    2024-04-02
  • 怎么通过拖曳获取文件信息的bat
    这篇文章主要介绍了怎么通过拖曳获取文件信息的bat,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。获取文件属性@echo offecho 无后缀名:&nbs...
    99+
    2023-06-08
  • 如何在Android中使用CrashHandler获取应用的crash信息
    如何在Android中使用CrashHandler获取应用的crash信息?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。一、Thread 类中的 setDefa...
    99+
    2023-05-30
    android crash crashhandler
  • Android利用ContentProvider获取联系人信息
    本文实例为大家分享了Android利用ContentProvider获取联系人信息的具体代码,供大家参考,具体内容如下 在写代码前我们首先看一下运行的效果 运行效果如下: 点了获取...
    99+
    2024-04-02
  • mysql通过explain获取查询执行计划的信息
    这篇文章主要介绍“mysql通过explain获取查询执行计划的信息”,在日常操作中,相信很多人在mysql通过explain获取查询执行计划的信息问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方...
    99+
    2024-04-02
  • vue如何通过某个字段获取详细信息
    目录通过某个字段获取详细信息vue一个字段的值按另一个字段的值 赋值通过某个字段获取详细信息 新增列表后通过name获取用户输入的详细信息 用户输入买方信息后弹出联系信息输入,确定后...
    99+
    2024-04-02
  • Android通过WiFi建立Socket套接字通信并获取数据
    目录 前言 权限申请 获取WIFI信息 建立Socket套接字连接 接收Wifi数据 发送数据 综合代码 使用方式 前言         本文主要讲述Android 11如何获取WIFI权限并通过TCP/IP协议使用Socket套接字与...
    99+
    2023-08-31
    android 网络
  • Android之 获取定位信息总结
    一,概述: 1  android原生是有定位api的,但稳定性和准确度远远不够,所以通常需要借助三方SDK获取位置信息 2 国内SDK选择性较多,百度,腾讯,高德等定位api,但都是需要在平台建立应用,配置key的,包括基础的定位。 3 国...
    99+
    2023-09-11
    android
  • Python获取网卡信息(名称、MAC、
        “人生苦短,我用Python”。Python的高效有一部分是跟它丰富的模块分不开的。Python有很多第三方模块可以帮助我们完成一些事情,减少开发时间。Python pypi库中一个模块名字叫“netifaces”,使用C语言写的一...
    99+
    2023-01-31
    网卡 名称 信息
  • Java获取类信息的三种方法+通过反射获取私有属性
    通过下面三种方法,我们可以获取到类的信息,包括类的名称、修饰符、父类、接口、字段、方法等信息。这些信息可以用于进行反射操作,例如动态创建对象、调用方法、访问字段等。 通过反射可以 使用Class.forName()方法 Class.forN...
    99+
    2023-10-02
    java python 开发语言
  • 怎么在python中通过help()方法获取函数信息
    本篇文章为大家展示了怎么在python中通过help()方法获取函数信息,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。python的五大特点是什么python的五大特点:1.简单易学,开发程序时,专...
    99+
    2023-06-14
  • android微信授权获取用户个人信息代码
    微信官方文档API:https://developers.weixin.qq.com/doc/oplatform/Mobile_App/WeChat_Login/Developmen...
    99+
    2024-04-02
  • android微信授权怎么获取用户个人信息
    本篇内容主要讲解“android微信授权怎么获取用户个人信息”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“android微信授权怎么获取用户个人信息”吧!微信官方文档API:https://de...
    99+
    2023-06-22
  • 通过java方式获取微信用户openId
    通过java方式获取微信用户openId 0.先熟悉微信网页授权流程 https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/Wechat_webpage_authoriza...
    99+
    2023-08-21
    微信 微信小程序 java
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作