您的位置:首页 > 其它

如何确认一个应用程序的安装位置

2012-08-29 14:51 190 查看
[Android Version]
6573 Android V2.3
6575 Android V2.3/V4.0

[Description]

有些应用能安装到SD卡上,有些不能,这其中有一定规则。如何判断?

[Solution]
Google 默认 PackageManager 管理安装包的机制如下:
AdroidManifest.xml 里面定义安装位置可以有四种情况:
1. 如果没有定义安装位置,表示安装在手机内存上;
2. android:installLocation = "auto",表示先查看手机内存是否足够,如果够就安装在手机内存上,不够就安装在 T 卡上;
3. android:installLocation = "internalOnly",表示安装在手机内存上;
4. android:installLocation = "preferExternal" ,表示安装在 T 卡上;

可以按照如下方式更改,这样用户就能自己选择安装位置:
打开 alps/frameworks/base/packages/SettingsProvider/DatabaseHelper.java
745 行改为 loadSetting(stmt, Secure.SET_INSTALL_LOCATION, 1);
1111 行改为 loadSetting(stmt, Settings.Secure.SET_INSTALL_LOCATION, 1);
这样更改过后,贵司就能在 Settings --> Applications 里面能看到选项.

注意:这样更改过后有个限制,如果 apk 的 AndroidManifest.xml 里面定义 android:installLocation
= "internalOnly",那么无论用户选择安装在什么地方,该apk 都会安装到手机上,这样做的好处是避免程序运行错误,因为定义android:installLocation = "internalOnly" 的 apk 一般要安装到手机内存上才能正常运行。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐