`
totoxian
  • 浏览: 1075716 次
  • 性别: Icon_minigender_2
  • 来自: 西安
文章分类
社区版块
存档分类
最新评论

(转)Android中让应用程序自动安装到手机内存及判断应用程序是否安装在SDCard中

 
阅读更多

上次写了个widget程序,安装好后准备把它添加到手机主页上,发现窗口小部件中找不到我刚刚安装的那个widget,网上查资料才发现系统窗口小部件只能先加载扫描安装在内存的应用程序,把属于widget的APP显示到小部件列表上。

对于开发者来说,怎样才能让应用程序自动安装到手机内存中去呢?

在 Android2.2版本及之后,AndoridManifest.xml 中有一个属性: android:installLocation ,可以通过设置这个属性的三个值 "auto" | "internalOnly" | "preferExternal",来决定将应用程序安装到哪里。

auto:

程序可能安装到外部存储介质上(例如,SDCard),但是默认会被安装到手机内存中,当手机内存为空时,程序将被安装到外部存储介质上。当程序安装在手机上后,用户可以在外部存储介质和手机内存上自行移动。

internalOnly(默认值):

当设置了该值后,程序只能安装在内存中,当手机内存为空时,安装不成功。

preferExternal:

将程序安装在外部存储介质上,但系统不保证程序一定会安装到外部存储介质上,当外部存储介质不可以或为空时,程序将被安装到内存中。若程序使用了forward-locking机制时也将被安装到内存中,因为外部存储不支持这种机制。程序安装后,用户同样可以在外部存储介质和内存之间自由移动。


当我们想知道应用程序是否安装在SDCard中时,可用如下语句判断:

  1. /**
  2. *判断包名所对应的应用是否安装在SD卡上
  3. *@return,trueifinstallonSDcard
  4. */
  5. publicstaticbooleanisInstallOnSDCard(StringpackageName){
  6. PackageManagerpm=LauncherApplication.getApp().getPackageManager();
  7. ApplicationInfoappInfo;
  8. try{
  9. appInfo=pm.getApplicationInfo(packageName,0);
  10. if((appInfo.flags&ApplicationInfo.FLAG_EXTERNAL_STORAGE)!=0){
  11. returntrue;
  12. }
  13. }catch(NameNotFoundExceptione){
  14. e.printStackTrace();
  15. }
  16. returnfalse;
  17. }

转自:http://blog.csdn.net/shakespeare001/article/details/8171065

分享到:
评论

相关推荐

    android 默认安装apk 到sdcard

    在Android系统中,APK(Android Package)是应用程序的安装包,用户通常通过Google Play或其他第三方应用商店下载这些APK文件来安装应用。然而,默认情况下,Android设备会将APK安装到内部存储器中,这可能导致内存...

    Android 平台上SDCard的自动mount的解决方法

    3. **测试SDCard读写功能**:使用简单的读写操作来测试SDCard是否能正常工作。例如,在命令行中使用`dd`命令写入数据到SDCard并读取出来验证。 #### 取消过时的sysfs布局创建 接下来,需要取消过时的sysfs布局创建...

    android往手机内存和sdcard卡上存储数据

    在Android中,存储到内存(内部存储)的代码示例如下: ```java // 获取内部存储的目录 File internalDir = getFilesDir(); // 创建一个文件 File file = new File(internalDir, "data.txt"); // 写入数据 try { ...

    android获取SDcard内存空间

    本文将基于标题和描述提供的内容,详细介绍如何在Android中获取SD卡的可用空间、总空间以及已用空间。 首先,了解Android对存储权限的管理至关重要。在Android 6.0(API级别23)及更高版本,应用需要在运行时请求`...

    Android 文件 内存目录获取 sdcard目录获取

    本篇将详细介绍在Android 2.3及更高版本中,如何获取和操作Android设备的内存目录以及SDCard目录。 首先,我们要理解Android的存储架构。内部存储主要用于存储应用私有的数据,这些数据对其他应用是不可见的。而...

    Android应用 文件存储到SDCard 单元测试代码及讲解

    在Android应用开发中,文件管理是一项基础且重要的任务。本单元测试代码着重讲解了如何将应用数据存储到手机的外部存储(即SDCard)以及内部存储,并提供了相应的测试用例来验证这些操作的正确性。下面我们将详细...

    android中sdcard的读写.doc

    ### Android中SDCard的读写操作详解 #### 一、SDCard访问概述 在Android开发过程中,对于外部存储(如SDCard)的读写是非常常见的需求。本文将详细介绍如何在Android应用中对SDCard进行读写操作,包括获取缓存目录...

    Android 实现应用下载后自动安装 源码

    在Android平台上,实现应用下载后自动安装的功能是一个常见的需求,特别是在企业级应用部署或者自动更新场景下。这个功能涉及到Android的文件系统管理、权限控制以及Intent机制。下面将详细讲解如何实现这一功能。 ...

    Android解析如何获取SDCard 内存项目源代码

    通过这个项目,开发者可以学习到如何在Android中正确、安全地获取和使用SDCard的存储信息,这对于需要大量占用存储的应用尤其重要。同时,这个例子也展示了如何处理Android版本差异和权限管理,是提升Android开发...

    android 读取外置SDCard

    在Android系统中,外置SDCard(也称为外部存储)是设备上用于扩展存储空间的区域,用户可以在这个空间上存储各种数据,如媒体文件、应用程序数据等。本篇文章将详细探讨如何在Android应用中实现对外置SDCard的读取、...

    Android应用源码SdCard读写文件实例

    本实例将探讨如何在Android应用中实现SdCard的读写功能。 首先,我们需要了解Android对SDCard访问的权限控制。在AndroidManifest.xml文件中,需要添加以下权限: ```xml <uses-permission android:name="android....

    android在Sdcard中上传中文文件镜像

    在Android系统中,将中文文件镜像上传到SD卡是一个常见的需求,特别是在处理系统更新、应用安装或数据备份时。本文将深入探讨如何在Android设备上实现这一操作,重点介绍与"android"、"镜像"、"中文"以及"UltraISO...

    Android应用源码SdCard读写文件实例.zip

    在Android平台上,对SD卡(Secure Digital Card)进行文件读写是常见的操作,尤其是在开发应用程序时,需要存储或检索用户数据、资源文件等。本文将深入解析“Android应用源码SdCard读写文件实例”中的关键知识点,...

    手机apk拷贝到sdcard

    3. **移动APK到SD卡**:在Android中,用户通常可以通过设置或第三方应用来移动已安装的应用到SD卡。对于未安装的APK,可以使用文件管理器应用将其复制到SD卡的适当目录,通常是`/storage/emulated/0/Download`或者`/...

    android手机外置SDcard(TF卡)获取方法

    4. 安装应用程序到SDcard可能会影响性能,因为外置SDcard的读写速度通常比内置存储慢。 总之,Android设备的外置SDcard(TF卡)是扩展存储空间的重要途径,获取和管理TF卡涉及编程接口的使用、系统权限的控制以及...

    Android应用源码45套安卓源码合集.zip

    Android应用源码(精)记事本小程序,加注释,适合阅读.rar Android应用源码Android平台下通过HTTP协议实现断点续传下载.rar Android应用源码Hibernate4Android.rar Android应用源码http、udp、tcp网络交互组件.rar ...

    Android如何获取SDCard_内存

    本文将详细介绍如何在Android中获取SD卡的状态及其内存信息,主要涉及两个关键类:`Environment`和`StatFs`。 #### 二、Environment类详解 `Environment`类提供了访问环境变量的功能,特别用于获取有关外部存储...

    android 模拟器中使用SDCard

    如何在 android 模拟器中使用SDCard

Global site tag (gtag.js) - Google Analytics