2013-07-01 24 views

回答

1

我這樣做的:

List<ApplicationInfo> packages = pm.getInstalledApplications(PackageManager.GET_META_DATA); 
for (ApplicationInfo appInfo : packages) 
{ 
    String storage = null; 
    String appStorage = applicationStorage(appInfo); 
    if(appStorage.startsWith("/data/")) 
    { 
     storage = "Internal"; 
    } 
    else 
    { 
     storage = "SD Card"; 
    } 
} 
+0

applicationStorage()? – NarendraJi

-2

安卓的installLocation = 「internalOnly」

android:installLocation =「preferExternal」

安卓的installLocation = 「自動」

+0

你可以在你選擇安裝的應用程序如上 – Rauf

+0

我想找到的應用程序,這是已經安裝的存儲 –

1

這會給你的應用程序的列表安裝在您的設備上(.apk文件)文件 -

adb shell pm list packages -f 

我的一些設備清單 -

package:/system/framework/framework-res.apk=android 
package:/system/app/MusicPickerActivity.apk=com.MusicPickerActivity 
package:/system/app/Kindle.apk=com.amazon.kindle 
package:/system/app/BackupRestoreConfirmation.apk=com.android.backupconfirm 
package:/system/app/Browser.apk=com.android.browser 
package:/system/app/Calculator.apk=com.android.calculator2 
package:/system/app/Calendar.apk=com.android.calendar 
package:/system/app/CertInstaller.apk=com.android.certinstaller 
package:/system/app/ChromeWithBrowser.apk=com.android.chrome 
package:/system/app/Contacts.apk=com.android.contacts 
package:/system/app/DefaultContainerService.apk=com.android.defcontainer 
package:/system/app/DeskClock.apk=com.android.deskclock 
package:/system/app/Email.apk=com.android.email 

列出已安裝的包含術語myapp-

個亞行外殼下午清單包| grep的MYAPP

的CMD輸出:

包:com.myapp.main

顯示應用程序myapp的安裝目錄 -

adb shell pm path com.myapp.main

的CMD輸出:

包:/data/app/com.myapp.main-2.apk

注:如果應用程序使用內部存儲,然後它會創建一個唯一的文件夾,將只從你的應用程序訪問。沒有其他應用程序可以看到它的內容。但是,外部存儲器就像公共文件夾一樣。

Applications on SD card細節..

+0

我的列表文件。我只想開發一個應用程序,它將顯示已安裝應用程序的列表,並針對每個應用程序,我想顯示其存儲位置。例如: Skype內部存儲 –

0

列表包= packageManager.getInstalledPackages(0); // PackageManager。GET_META_DATA

for(int i=0; i < packs.size(); i++) { 

    PackageInfo p = packs.get(i); 
    ApplicationInfo a = p.applicationInfo; 
    // skip system apps if they shall not be included 
    if ((!includeSysApps) && ((a.flags & ApplicationInfo.FLAG_SYSTEM) == 1)) { 
     continue; 
    } 
    App app = new App(); 
    app.setTitle(p.applicationInfo.loadLabel(packageManager).toString()); 
    app.setPackageName(p.packageName); 
    app.setVersionName(p.versionName); 
    app.setVersionCode(p.versionCode); 
    CharSequence description = p.applicationInfo.loadDescription(packageManager); 
    app.setDescription(description != null ? description.toString() : ""); 
    apps.add(app); 

    } 
相關問題