2011-07-11 35 views
3

有誰知道這些應用程序的類名和包名:獲取包名和類名的所有應用程序

的YouTube Facebook的 亞馬遜MP3 谷歌通話 相機映射 短信 撥號器/手機 發射 安卓市場 消息 接觸 社交網絡 高級任務殺手

我正在嘗試使按鈕來打開這些應用程序。當然,必須有比搞清楚每一個應用程序包和類名的簡單方法。如果有讓我知道如何去做。 謝謝! :)

+0

做你希望得到的所有信息有關安裝的應用程序? –

+0

這將是很好過。但是,如果你給我的代碼,您可以包括整個Java文件,並將整個清單和XML文件。 – Gabe

回答

3
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你可以得到包名,應用程序名稱,但不能確定應用程序的類名

使用這個例子中,你可以列出所有的應用程序在設備安裝,並能得到有信息。

0

你可以看一下包名和AndroidManifest.xml中的其他許多地方通過模擬器拉動的開發工具,並與所請求的應用程序在設備上安裝它。您可以在命令提示符下執行這些命令來執行此操作。

而仿真器連接,運行:

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

斷開仿真器,連接器,並運行:

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

相關問題