`

判断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卡)读写、图形处理性能、数据库读写等五项测试,针对每项测试给出评分并最终为手机打出硬件评分。硬件评分能帮助您了解市面上种类繁多的手机各自...

    Google Android SDK开发范例大全(第3版) 1/5

    3.26 指定安装应用程序迁移至SD卡 3.27 手机动态Layout主题随手势物换迁移 第4章 史上超豪华的手机控件 4.1 EditText与TextView共舞 4.2 设计具有背景图的按钮 4.3 给圣诞老人的信息 4.4 我同意条款 4.5 消费券采购...

    Google Android SDK开发范例大全(第3版) 4/5

    3.26 指定安装应用程序迁移至SD卡 3.27 手机动态Layout主题随手势物换迁移 第4章 史上超豪华的手机控件 4.1 EditText与TextView共舞 4.2 设计具有背景图的按钮 4.3 给圣诞老人的信息 4.4 我同意条款 4.5 消费券采购...

    Google Android SDK开发范例大全(第3版) 3/5

    3.26 指定安装应用程序迁移至SD卡 3.27 手机动态Layout主题随手势物换迁移 第4章 史上超豪华的手机控件 4.1 EditText与TextView共舞 4.2 设计具有背景图的按钮 4.3 给圣诞老人的信息 4.4 我同意条款 4.5 消费券采购...

    Google Android SDK开发范例大全(第3版) 5/5

    3.26 指定安装应用程序迁移至SD卡 3.27 手机动态Layout主题随手势物换迁移 第4章 史上超豪华的手机控件 4.1 EditText与TextView共舞 4.2 设计具有背景图的按钮 4.3 给圣诞老人的信息 4.4 我同意条款 4.5 消费券采购...

    Google Android SDK开发范例大全(第3版)part2

     3.26 指定安装应用程序迁移至SD卡  3.27 手机动态Layout主题随手势物换迁移  第4章 史上超豪华的手机控件  4.1 EditText与TextView共舞  4.2 设计具有背景图的按钮  4.3 给圣诞老人的信息  4.4 我同意...

    《Google Android SDK开发范例大全(第3版)》.pdf

    3.26 指定安装应用程序迁移至sd卡 78 3.27 手机动态layout主题随手势物换迁移 79 第4章 史上超豪华的手机控件 84 4.1 edittext与textview共舞 85 4.2 设计具有背景图的按钮 86 4.3 给圣诞老人的信息...

    LMFrameWork:一个安卓框架

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

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

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

    黑马程序员 安卓学院 万元哥项目经理 分享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开发资料合集-World版!

    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、建立...

Global site tag (gtag.js) - Google Analytics