上次写了个widget程序,安装好后准备把它添加到手机主页上,发现窗口小部件中找不到我刚刚安装的那个widget,网上查资料才发现系统窗口小部件只能先加载扫描安装在内存的应用程序,把属于widget的APP显示到小部件列表上。
对于开发者来说,怎样才能让应用程序自动安装到手机内存中去呢?
在 Android2.2版本及之后,AndoridManifest.xml 中有一个属性: android:installLocation ,可以通过设置这个属性的三个值 "auto" | "internalOnly" | "preferExternal",来决定将应用程序安装到哪里。
auto:
程序可能安装到外部存储介质上(例如,SDCard),但是默认会被安装到手机内存中,当手机内存为空时,程序将被安装到外部存储介质上。当程序安装在手机上后,用户可以在外部存储介质和手机内存上自行移动。
internalOnly(默认值):
当设置了该值后,程序只能安装在内存中,当手机内存为空时,安装不成功。
preferExternal:
将程序安装在外部存储介质上,但系统不保证程序一定会安装到外部存储介质上,当外部存储介质不可以或为空时,程序将被安装到内存中。若程序使用了forward-locking机制时也将被安装到内存中,因为外部存储不支持这种机制。程序安装后,用户同样可以在外部存储介质和内存之间自由移动。
当我们想知道应用程序是否安装在SDCard中时,可用如下语句判断:
-
-
-
-
-
publicstaticbooleanisInstallOnSDCard(StringpackageName){
-
PackageManagerpm=LauncherApplication.getApp().getPackageManager();
-
ApplicationInfoappInfo;
-
try{
-
appInfo=pm.getApplicationInfo(packageName,0);
-
if((appInfo.flags&ApplicationInfo.FLAG_EXTERNAL_STORAGE)!=0){
-
returntrue;
-
}
-
}catch(NameNotFoundExceptione){
-
e.printStackTrace();
-
}
-
returnfalse;
-
}
转自:http://blog.csdn.net/shakespeare001/article/details/8171065
分享到:
相关推荐
android 默认安装apk 到sdcard tf 卡
Android应用源码SdCard读写文件实例
一段详细的往手机内存和手机sdcard卡上面存储数据的代码,作者对里面的功能进行了封装,在实际的开发项目中可以直接拿来用。
里面包含和文件如何存储到手机SDCard上 和如何存储到手机内存上 已经 对应这个应用的单元测试代码!
Android应用源码SdCard读写文件实例.zip
android 无sdcard 下载安装 apk 多线程 断点 自动安装apk
自己整理的一套源代码 如果有不清楚的请联系 wclhbrj@sina.cn
如何在 android 模拟器中使用SDCard
具体介绍了android中sdcard的读写操作步骤和具体的实现过程,介绍了sdcard的应用等
android应用开发中关于SDCard读写操作的实例代码,在下载学习SDCard操作中,碰到很棘手的问题了。不过最后还在我的坚持下成功了,
Android应用源码(精)记事本小程序,加注释,适合阅读.rar Android应用源码Android平台下通过HTTP协议实现断点续传下载.rar Android应用源码Hibernate4Android.rar Android应用源码http、udp、tcp网络交互组件.rar ...
Android如何获取SDCard_内存,不错哦。
获取外置SDcard路径,进行创建,写入,读取,删除操作。
Android日志服务例子,将日志记录在文件中并每天生成一个日志文件
/ 参数说明 // context:上下文 // dialogid:对话框ID // title:对话框标题 // callback:一个传递Bundle参数的回调接口 // suffix:需要选择的文件后缀,比如需要选择wav、mp3文件的时候设置为".wav;...
RK sdcard预留内存补丁
SDCard存储卡在 Android 手机上是可以随时插拔的,每次的动作都会引起Android系统ACTION_BROADCAST,本例子将计算出 SDCard 的剩余容量和总容量。供测试的sd卡中存了两首歌和一个30M的文件,现在检测剩余的空间正好...
android 2.3 + eclipse