开发者

Get package names and class names for all applications

Does anyone know the class name and package name for any of these applications:

youtube facebook amazon mp3 google talk camera maps text message dialer/phone launcher android market messaging contacts Social Networking Advanced Task Killer

I'm trying to make buttons to open these applications. Surely there must be an easier way than figuring out the package and class nam开发者_运维知识库e for every application. If there is let me know how to do it. Thanks! :)


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;

}

Using PakageInfo you can get package name, application Name but not sure about application class name

Using this example you can list all applications install in your device and can get there information.


You can look up the package name and many other parts of the AndroidManifest.xml by pulling the development tools from the emulator, and install it on the device with the requested applications. you can execute these commands at the command prompt to do this.

while the emulator is connected, run:

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

disconnect the emulator, connect the device, and run:

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

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜