我正在使用以下功能来获取已安装应用的列表.
我已经检查了InstalledAppDetails的Android源代码,但无法获得解决方案.
谢谢
private List<App> loadInstalledApps(boolean includeSysApps) { List<App> apps = new ArrayList<App>(); // the package manager contains the information about all installed apps PackageManager packageManager = getPackageManager(); List<PackageInfo> packs = 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); app.setInstallDir(p.applicationInfo.sourceDir); app.setInstallSize(calculateSize(app.getInstallDir())); CharSequence description = p.applicationInfo.loadDescription(packageManager); app.setDescription(description != null ? description.toString() : ""); if(app.getInstallDir().contains("/mnt")) { //app on sdcard apps.add(app); } else { //app on phone memory apps.add(app); } } return apps; }解决方法 应用安装位置在您应用的AndroIDManifest.xml中指定.看看 here了解更多信息.简而言之:
<manifest xmlns:androID="http://schemas.androID.com/apk/res/androID"androID:installLocation="preferExternal"... >
要么
<manifest xmlns:androID="http://schemas.androID.com/apk/res/androID"androID:installLocation="auto"... >
auto表示应用程序可能安装在外部设备上,但您没有偏好;而preferExternal意味着应用程序将尽可能安装在外部设备上
记住……
If you do not declare this attribute,your application will be
installed on the internal storage only and it cannot be moved to the
external storage.
所以,现在的问题是如何从应用程序中获取androIDManifest.xml文件.好吧,你可以从APK(如果安装后没有删除).对于这个问题,请看一下这篇文章:How to parse the AndroidManifest.xml file inside an .apk package
最后,关于解析xml的一个很棒的主题也可以在这篇文章中找到. Accessing android:installLocation manifest attribute
干杯,阿尔
总结以上是内存溢出为你收集整理的android – 我如何确定该应用程序可以移动到SD卡?全部内容,希望文章能够帮你解决android – 我如何确定该应用程序可以移动到SD卡?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)