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

[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.xm里面定义 android:installLocation = "internalOnly",那么无论用户选择安装在什么地方,该apk 都会安装到手机上,这样做的好处是避免程序运行错误,因为定义android:installLocation = "internalOnly"  apk 一般要安装到手机内存上才能正常运行。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值