【问题标题】:Get package names and class names for all applications获取所有应用程序的包名和类名
【发布时间】:2011-10-02 15:48:49
【问题描述】:

有谁知道这些应用程序的类名和包名:

YouTube Facebook 亚马逊mp3 谷歌谈话 相机地图 短信 拨号器/电话 发射器 安卓市场 消息传递 联系人 社交网络 高级任务杀手

我正在尝试制作打开这些应用程序的按钮。肯定有比找出每个应用程序的包和类名更简单的方法。如果有让我知道该怎么做。 谢谢! :)

【问题讨论】:

  • 您想获取有关安装应用程序的所有信息吗?
  • 那也不错。但是,如果你给我代码,你能把整个 java 文件和整个清单和 xml 文件包括进来。

标签: android class package


【解决方案1】:
class PInfo {
    private String appname = "";
    private String pname = "";
    private String classname = "";
    private int versionCode = 0;
    private Drawable icon;
    private void prettyPrint() {
        Log.d("Applist ",appname + "   " + pname + "   " + classname + "   " + versionCode);

    }
}





public ArrayList<PInfo> getPackages() {
     Log.d("AppNo", "Inside Packages"); 
    ArrayList<PInfo> apps = getInstalledApps(false); /* false = no system packages */
    final int max = apps.size();
    Log.d("AppNo", "no of apps "+max); 
    for (int i=0; i<max; i++) {
        apps.get(i).prettyPrint();

    }
    return apps;
}

public ArrayList<PInfo> getInstalledApps(boolean getSysPackages) {
    ArrayList<PInfo> res = new ArrayList<PInfo>();        
    List<PackageInfo> packs = getPackageManager().getInstalledPackages(0);
    for(int i=0;i<packs.size();i++) {
        PackageInfo p = packs.get(i);



        if ((!getSysPackages) && (p.versionName == null)) {
            continue ;
        }
        PInfo newInfo = new PInfo();
        newInfo.appname = p.applicationInfo.loadLabel(getPackageManager()).toString();
        newInfo.pname = p.packageName;
        newInfo.classname = p.applicationInfo.className;
        newInfo.versionCode = p.versionCode;
        newInfo.icon = p.applicationInfo.loadIcon(getPackageManager());

        Intent app=getPackageManager().getLaunchIntentForPackage(p.packageName);


            if(app!=null){
                dleteintent(app,newInfo.appname, newInfo.icon);
                res.add(newInfo);
        }

    }
    return res;

}

使用 PakageInfo 可以获取包名、应用程序名但不确定应用程序类名

使用此示例,您可以列出设备中安装的所有应用程序,并可以获得那里的信息。

【讨论】:

    【解决方案2】:

    您可以通过从模拟器中提取开发工具来查找包名称和 AndroidManifest.xml 的许多其他部分,然后将其与请求的应用程序一起安装在设备上。您可以在命令提示符处执行这些命令来执行此操作。

    当模拟器连接时,运行:

    /path-to-android-sdk/platform-tools/adb pull /system/app/DevelopmentTools.apk

    断开模拟器,连接设备,然后运行:

    /path-to-android-sdk/platform-tools/adb install DevelopmentTools.apk

    【讨论】:

      猜你喜欢
      • 2014-09-10
      • 1970-01-01
      • 2014-01-19
      • 2010-12-23
      • 2021-10-25
      • 2017-02-03
      • 1970-01-01
      • 1970-01-01
      • 2015-11-25
      相关资源
      最近更新 更多