大佬教程收集整理的这篇文章主要介绍了android – 我如何确定该应用程序可以移动到SD卡?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我已经检查了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; }
<manifest xmlns:android="http://scheR_959_11845@as.android.com/apk/res/android" android:installLOCATIOn="preferExternal" ... >
要么
<manifest xmlns:android="http://scheR_959_11845@as.android.com/apk/res/android" android:installLOCATIOn="auto" ... >
auto表示应用程序可能安装在外部设备上,但您没有偏好;而preferExternal意味着应用程序将尽可能安装在外部设备上
记住……
所以,现在的问题是如何从应用程序中获取androidManifest.xml文件.好吧,你可以从APK(如果安装后没有删除).对于这个问题,请看一下这篇文章:@L_673_15@
最后,关于解析xml的一个很棒的主题也可以在这篇文章中找到. Accessing android:installLocation manifest attribute
干杯,阿尔
以上是大佬教程为你收集整理的android – 我如何确定该应用程序可以移动到SD卡?全部内容,希望文章能够帮你解决android – 我如何确定该应用程序可以移动到SD卡?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。