Android   发布时间:2022-04-28  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了android – 我如何确定该应用程序可以移动到SD卡?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我想确定手机内存和安装上安装的应用程序列表.移动到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;
   }

解决方法

应用安装位置在您应用的AndroidManifest.xml中指定.看看 here了解更多信息.简而言之:

<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,请注明来意。