Android中让应用程序自动安装到手机内存及判断应用程序是否安装在SDCard中
2012-11-11 14:13
633 查看
上次写了个widget程序,安装好后准备把它添加到手机主页上,发现窗口小部件中找不到我刚刚安装的那个widget,网上查资料才发现系统窗口小部件只能先加载扫描安装在内存的应用程序,把属于widget的APP显示到小部件列表上。
对于开发者来说,怎样才能让应用程序自动安装到手机内存中去呢?
在 Android2.2版本及之后,AndoridManifest.xml 中有一个属性: android:installLocation ,可以通过设置这个属性的三个值 "auto" | "internalOnly"
| "preferExternal",来决定将应用程序安装到哪里。
auto:
程序可能安装到外部存储介质上(例如,SDCard),但是默认会被安装到手机内存中,当手机内存为空时,程序将被安装到外部存储介质上。当程序安装在手机上后,用户可以在外部存储介质和手机内存上自行移动。
internalOnly(默认值):
当设置了该值后,程序只能安装在内存中,当手机内存为空时,安装不成功。
preferExternal:
将程序安装在外部存储介质上,但系统不保证程序一定会安装到外部存储介质上,当外部存储介质不可以或为空时,程序将被安装到内存中。若程序使用了forward-locking机制时也将被安装到内存中,因为外部存储不支持这种机制。程序安装后,用户同样可以在外部存储介质和内存之间自由移动。
当我们想知道应用程序是否安装在SDCard中时,可用如下语句判断:
对于开发者来说,怎样才能让应用程序自动安装到手机内存中去呢?
在 Android2.2版本及之后,AndoridManifest.xml 中有一个属性: android:installLocation ,可以通过设置这个属性的三个值 "auto" | "internalOnly"
| "preferExternal",来决定将应用程序安装到哪里。
auto:
程序可能安装到外部存储介质上(例如,SDCard),但是默认会被安装到手机内存中,当手机内存为空时,程序将被安装到外部存储介质上。当程序安装在手机上后,用户可以在外部存储介质和手机内存上自行移动。
internalOnly(默认值):
当设置了该值后,程序只能安装在内存中,当手机内存为空时,安装不成功。
preferExternal:
将程序安装在外部存储介质上,但系统不保证程序一定会安装到外部存储介质上,当外部存储介质不可以或为空时,程序将被安装到内存中。若程序使用了forward-locking机制时也将被安装到内存中,因为外部存储不支持这种机制。程序安装后,用户同样可以在外部存储介质和内存之间自由移动。
当我们想知道应用程序是否安装在SDCard中时,可用如下语句判断:
/** * 判断包名所对应的应用是否安装在SD卡上 * @return, true if install on SD card */ public static boolean isInstallOnSDCard(String packageName) { PackageManager pm = LauncherApplication.getApp().getPackageManager(); ApplicationInfo appInfo; try { appInfo = pm.getApplicationInfo(packageName, 0); if ((appInfo.flags & ApplicationInfo.FLAG_EXTERNAL_STORAGE) != 0) { return true; } } catch (NameNotFoundException e) { e.printStackTrace(); } return false; }
相关文章推荐
- (转)Android中让应用程序自动安装到手机内存及判断应用程序是否安装在SDCard中
- Android中让应用程序自动安装到手机内存及判断应用程序是否安装在SDCard中
- 【Android代码片段之七】判断sdCard是否已安装的两种方法
- Android如何判断应用程序是安装在手机内存中还是SD卡
- Android(判断wifi是否开启,手机屏幕状态,sdcard是否被拔出,设置全屏)
- Android之获取手机上已安装的所有的应用程序的信息,并判断是否安装了某应用程序(系统程序或非系统应用程序判断)
- android代码中判断SDcard是否存在,剩余内存
- Android开发:判断sdCard是否已安装的两种方法
- Android(判断wifi是否开启,手机屏幕状态,sdcard是否被拔出,设置全屏)
- Android如何判断应用程序是安装在手机内存中还是SD卡
- Android中判断Wift是否开启,手机屏幕状态,sdcard是否被拔出,设置全屏
- [Android] 判断手机上是否安装了某个程序
- android 判断应用程序是否已安装
- android 判断应用程序是否已安装
- Android如何判断手机里是否安装了某个应用
- [Android 特效] 教你怎么判断手机是否已安装某程序(转)
- [Android] 判断手机上是否安装了某个程序
- Android 判断手机是否安装某个应用
- Android 判断应用程序是否已安装
- android 判断应用程序是否已安装