zoukankan      html  css  js  c++  java
  • Android如何获取同包名应用的图标及名称

    如题,此类需求在网上应该说是一抓一大把,不过大多千篇一律。即依据包名获得这类信息。

    本人上周做一个项目的时候,发现依据包名是有问题的。比如:联系人和拨号,WLAN设置和设置。这些应用,包名是一样的,只是主Activity不一样而已。会出现图标、名称获取重复的问题。

    这个时候,再使用ApplicationInfo获得上述信息就出现了问题。这里我们必须使用ActivityInfo。

    这里需要注意的是:我们必须知道这个Activity叫什么。举个例子:

    ComponentName cn = new ComponentName(mPkgName, mClassName);
    PackageManager pkm = context.getPackageManager();
    mAppicon = pkm.getActivityInfo(cn,
                            ActivityInfo.FLAG_STATE_NOT_NEEDED).loadIcon(pkm);
    mApplabel = pkm.getActivityInfo(cn,
                            ActivityInfo.FLAG_STATE_NOT_NEEDED).loadLabel(pkm)+"";

    这样,我们获得的icon和label就不会是重复的了。

    同样,这里如果你需要单击打开App的话,也是需要依靠ComponentName来启动的。通过包名检测主activity去启动的方式也会导致重复。

    之后再次碰到同包名应用的时候,要注意了!

  • 相关阅读:
    spring mvc 源码简要分析
    tomcat 开启远程debug
    jdk1.5-jdk1.9的主要区别
    关于elasticsearch 6.x及其插件head安装(单机与集群)5分钟解决
    mysql主从配置(5分钟解决问题)
    内部类总结
    Colored Sticks
    vim 将tab转为空格
    shell编程
    vim -- 查找和替换
  • 原文地址:https://www.cnblogs.com/lovejoy/p/3406148.html
Copyright © 2011-2022 走看看