android 在代码中怎么判断,一个已经安装在手机中的应用程序是否可以移动到SD卡中?通过什么来判断

在Manifest.xml中有android:installLocation可是我在代码中找不到

在manifest里头是不是处理自身的安装位置,第三方应用经过编译之后安装到手机里是否还能获取到它的xml,这个值得考究。你可以看看系统setting里头的代码,有些程序如果支持移动到SD卡系统详情那里也会有
我给搜了段setting中的代码,你可以借鉴一下~
if (v == mMoveAppButton) {
if (mPackageMoveObserver == null) {
mPackageMoveObserver = new PackageMoveObserver();
}
int moveFlags = (mAppEntry.info.flags & ApplicationInfo.FLAG_EXTERNAL_STORAGE) != 0 ?
PackageManager.MOVE_INTERNAL : PackageManager.MOVE_EXTERNAL_MEDIA;
mMoveInProgress = true;
refreshButtons();
mPm.movePackage(mAppEntry.info.packageName, mPackageMoveObserver, moveFlags);
}追问

你好,我今天在API里面没有找到 PackageManager.MOVE_INTERNAL和PackageManager.MOVE_EXTERNAL_MEDIA,源代码里面也有installLocation属性的,也取不出来的,哎,这个不知道咋搞,麻烦知道帮我一下

追答

如果是隐藏的接口,可以使用java反射机制试试

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-05-12
楼主,问题是怎么解决的,我现在也遇到这样的问题,能否分享下?谢谢!追问

通过反射机制获得ApplicationInfo中的installLocation,通过获得值来判断

相似回答