`

判断apk是否安装的sd卡,还是手机内存

 
阅读更多

一、判断apk是否安装的sd卡,还是手机内存

 

 

PackageInfo = ctx.getPackageManager().getPackageInfo(packageName, PackageManager.GET_UNINSTALLED_PACKAGES)

boolean isSdcard = (packageInfo.applicationInfo.flags & ApplicationInfo.FLAG_EXTERNAL_STORAGE)!=0 ; //判断当前APP是否安装的SD卡里面

为true则,Apk安装的SD卡里

 

二、

/**
* Checks if the application is installed on the SD card.
* 
* @return <code>true</code> if the application is installed on the sd card
*/
public static boolean isInstalledOnSdCard() {

Context context = App.getContext();
// check for API level 8 and higher
if (VERSION.SDK_INT > android.os.Build.VERSION_CODES.ECLAIR_MR1) {
  PackageManager pm = context.getPackageManager();
  try {
    PackageInfo pi = pm.getPackageInfo(context.getPackageName(), 0);
    ApplicationInfo ai = pi.applicationInfo;
    return (ai.flags & FLAG_EXTERNAL_STORAGE) == FLAG_EXTERNAL_STORAGE;
  } catch (NameNotFoundException e) {
    // ignore
  }
}

// check for API level 7 - check files dir
try {
  String filesDir = context.getFilesDir().getAbsolutePath();
  if (filesDir.startsWith("/data/")) {
    return false;
  } else if (filesDir.contains("/mnt/") || filesDir.contains("/sdcard/")) {
    return true;
  }
} catch (Throwable e) {
  // ignore
}

return false;
}

 

 

三、当SD卡除掉时,获得已安装在SD卡上面的apk的时候,图标不能显示,

 

这时判断是否应用不能用的方法:

 

String path = packageInfo.applicationInfo.sourceDir ;

if(isSdcard && path != null && !new File(path).exists() ){
	continue ;
}else if(appInfo!=null){
	//正常逻辑}

 

 

分享到:
评论

相关推荐

    鹰眼手机评测 v1.3.1

    鹰眼手机硬件评测主要包括手机CPU性能、内存性能、插入式存储卡(SD卡)读写、图形处理性能、数据库读写等五项测试,针对每项测试给出评分并最终为手机打出硬件评分。硬件评分能帮助您了解市面上种类繁多的手机各自...

    内存卡清理应用源码

    内存卡清理应用源码是开发移动设备应用程序的重要资源,它为开发者提供了深入理解如何优化存储空间、提升设备性能的视角。源码是程序的基础,它包含了一系列编程语言编写的文件,这些文件共同构成了一个功能完整的...

    android 简单的读取SD卡的所有图片

    在Android平台上,开发人员经常需要实现从外部存储设备(如SD卡)中读取图片的功能。这个需求在很多应用场景中都很常见,例如制作相册应用或者进行图片展示。本篇文章将详细讲解如何在Android 2.1-update1及更高版本...

    手机卫士项目.docx

    - **将apk保存在SD卡中:** 将下载的安装包保存在外部存储设备上。 - **安装APK:** 引导用户安装更新后的应用程序。 2. **主界面的显示和功能项名称修改** - **主界面的显示:** - **显示带输入框的Dialog:**...

    LMFrameWork:一个安卓框架

    d.SD卡判断(容量是否足够,SD卡,手机内存,应用内存剩余多少) e.文件上传,图片上传 f.文件下载,APP下载 g.处理(图片处理,字符串处理) h.数据库操作(缓存) i.配置保存(sharepreference) j.设置缓存路径 k.系统时间...

    五,Android文件IO详解

    要注意的是,Android为了安全考虑,对外部存储(外部SD卡)的访问需要申请相应的权限。 接下来,我们讨论一下Android特有的存储路径。Android有内部存储和外部存储两种。内部存储的数据对其他应用是私有的,而外部...

    google android sdk开发范例大全 第二版 PDF 光盘代码

     6.9 访问本机内存与存储卡   6.10 实现可定时响起的闹钟   6.11 黑名单来电自动静音   6.12 手机翻背面即静音震动   6.13 指定时间置换桌面背景   6.14 判断发送短信后的状态   6.15 ...

    Android开发获取系统中已安装程序信息的方法

    另外,还可以判断程序包是否安装在SD卡上,可以通过检查flags标志中是否包含ApplicationInfo.FLAG_EXTERNAL_STORAGE来判断。 在获取程序包信息时,需要使用AppInfo对象来存储程序包的信息,该对象包含了程序包的...

    三星gti8268刷机包

    - **存储空间**:内部存储空间有限,可通过microSD卡扩展。 - **网络支持**:支持GSM、WCDMA等网络制式。 #### 二、刷机包中的文件解析 刷机包是用于更新或更改手机操作系统的文件集合,包含了系统文件、驱动程序...

    1_卡触摸解决方法以及软件-1.zip

    标题“1_卡触摸解决方法以及软件-1.zip”表明这是一个关于解决设备触屏卡顿问题的资源包,其中可能包含教程和相应的辅助软件。描述中的内容与标题相同,暗示了压缩包的内容专注于修复触控问题。由于标签为空,我们...

    山寨机自动答录机

    2. **内存卡操作**:描述中提到将软件“解压复制到内存卡”,说明软件是以可执行文件或APK格式存储的,需要通过USB数据线或者蓝牙等途径传输到手机内存卡中。这种方式常见于非Google Play Store分发的应用程序。 3....

    黑马程序员 安卓学院 万元哥项目经理 分享220个代码实例

    |--系统信息之获取SD卡内存信息 |--系统信息之获取动态内存RAM信息 |--系统信息之获取可用内存 |--系统信息之获得mac地址 |--系统信息之获得手机sim卡序列号 |--缓存优化之几种方案lastModified |--缓存优化之本地...

    Android 开发技巧

    9.44、检查SD卡是否存在并且可以写入 267 9.45、获取SD卡的路径和存储空间 268 9.46、将程序安装到SD卡 268 9.47、创建一个SD映像 269 9.48、查看手机内存存储 269 9.49、在模拟器上调试GOOGLE MAPS 271 9.50、建立...

    简单而强大的 Android 设备完整信息查看应用.rar

    这样的应用通常包括CPU型号、内存容量、存储空间、屏幕分辨率、电池状态、系统版本、安装的应用程序列表等众多详细信息。 描述中的“简单而强大”意味着这个应用在设计上力求简洁易用,同时具备强大的功能。用户...

    mtk工程模式

    1. **网络测试**:这部分可能包括SIM卡检测、网络信号强度测量、数据连接测试等,帮助判断设备的通信功能是否正常。 2. **硬件测试**:如屏幕显示、触摸屏响应、音频输入/输出、摄像头、蓝牙、Wi-Fi等模块的功能...

    ClearScreenHelper.zip

    5. **权限管理**: 如果应用需要访问或改变用户的主屏幕,可能需要申请相应的权限,如SYSTEM_ALERT_WINDOW(画中画模式)或WRITE_EXTERNAL_STORAGE(如果涉及到读写SD卡)。 6. **Android生命周期**: 了解Activity和...

    2012最新java面试大全--很有帮助的

    可以使用Environment.getExternalStorageState()方法来判断设备是否存在可读写的SD卡。 ### 49. 内存泄漏在Android系统中如何排查? 可以通过Android Studio中的Memory Profiler工具、LeakCanary库等工具来检测和...

Global site tag (gtag.js) - Google Analytics