- 浏览: 865500 次
- 性别:
- 来自: 杭州
文章分类
最新评论
-
hzw2312:
C = sin(MLatA)*sin(MLatB)*cos(M ...
根据地球上任意两点的经纬度计算两点间的距离 -
zhang_sun:
rewind方法的limit又是多少呢?等于capacity? ...
ByteBuffer的flip,clear及rewind区别 -
kalogen:
一种每次都获取到不同的随机数的办法int ranseed=12 ...
J2ME中Random类的使用 -
kalogen:
估计部署在某个端口下吧,仔细检查一下发布的配置文件
Tomcat负载均衡和集群环境的搭建 -
zhuchao_ko:
文件大点就嗝屁了~~~
Axis 1.4 上传二进制文件(base64Binary)
如下就是一个工具类,其作用是采用递归扫描SD卡上的apk文件,判断该应用是否在手机上安装过,如果安装过再去判断是否可以升级。具体代码如下:
/** * 获取手机上apk文件信息类,主要是判断是否安装再手机上了,安装的版本比较现有apk版本信息 * <A href="http://my.oschina.net/arthor" rel=nofollow target=_blank>@author</A> Dylan */ public class ApkSearchUtils { private static int INSTALLED = 0; // 表示已经安装,且跟现在这个apk文件是一个版本 private static int UNINSTALLED = 1; // 表示未安装 private static int INSTALLED_UPDATE =2; // 表示已经安装,版本比现在这个版本要低,可以点击按钮更新 private Context context; private List<MyFile> myFiles = new ArrayList<MyFile>(); public List<MyFile> getMyFiles() { return myFiles; } public void setMyFiles(List<MyFile> myFiles) { this.myFiles = myFiles; } public ApkSearchUtils(Context context) { super(); this.context = context; } /** * @param args * 运用递归的思想,递归去找每个目录下面的apk文件 */ public void FindAllAPKFile(File file) { // 手机上的文件,目前只判断SD卡上的APK文件 // file = Environment.getDataDirectory(); // SD卡上的文件目录 if (file.isFile()) { String name_s = file.getName(); MyFile myFile = new MyFile(); String apk_path = null; // MimeTypeMap.getSingleton() if (name_s.toLowerCase().endsWith(".apk")) { apk_path = file.getAbsolutePath();// apk文件的绝对路劲 // System.out.println("----" + file.getAbsolutePath() + "" + // name_s); PackageManager pm = context.getPackageManager(); PackageInfo packageInfo = pm.getPackageArchiveInfo(apk_path, PackageManager.GET_ACTIVITIES); ApplicationInfo appInfo = packageInfo.applicationInfo; /**获取apk的图标 */ appInfo.sourceDir = apk_path; appInfo.publicSourceDir = apk_path; Drawable apk_icon = appInfo.loadIcon(pm); myFile.setApk_icon(apk_icon); /** 得到包名 */ String packageName = packageInfo.packageName; myFile.setPackageName(packageName); /** apk的绝对路劲 */ myFile.setFilePath(file.getAbsolutePath()); /** apk的版本名称 String */ String versionName = packageInfo.versionName; myFile.setVersionName(versionName); /** apk的版本号码 int */ int versionCode = packageInfo.versionCode; myFile.setVersionCode(versionCode); /**安装处理类型*/ int type = doType(pm, packageName, versionCode); myFile.setInstalled(type); Log.i("ok", "处理类型:"+String.valueOf(type)+"\n" + "------------------我是纯洁的分割线-------------------"); myFiles.add(myFile); } // String apk_app = name_s.substring(name_s.lastIndexOf(".")); } else { File[] files = file.listFiles(); if (files != null && files.length > 0) { for (File file_str : files) { FindAllAPKFile(file_str); } } } } /* * 判断该应用是否在手机上已经安装过,有以下集中情况出现 * 1.未安装,这个时候按钮应该是“安装”点击按钮进行安装 * 2.已安装,按钮显示“已安装” 可以卸载该应用 * 3.已安装,但是版本有更新,按钮显示“更新” 点击按钮就安装应用 */ /** * 判断该应用在手机中的安装情况 * @param pm PackageManager * @param packageName 要判断应用的包名 * @param versionCode 要判断应用的版本号 */ private int doType(PackageManager pm, String packageName, int versionCode) { List<PackageInfo> pakageinfos = pm.getInstalledPackages(PackageManager.GET_UNINSTALLED_PACKAGES); for (PackageInfo pi : pakageinfos) { String pi_packageName = pi.packageName; int pi_versionCode = pi.versionCode; //如果这个包名在系统已经安装过的应用中存在 if(packageName.endsWith(pi_packageName)){ //Log.i("test","此应用安装过了"); if(versionCode==pi_versionCode){ Log.i("test","已经安装,不用更新,可以卸载该应用"); return INSTALLED; }else if(versionCode>pi_versionCode){ Log.i("test","已经安装,有更新"); return INSTALLED_UPDATE; } } } Log.i("test","未安装该应用,可以安装"); return UNINSTALLED; } }
如果有人看到并且指出上述代码不足支出,非常感谢!
摘自:http://my.oschina.net/keeponmoving/blog/61749
发表评论
-
Installation error: INSTALL_PARSE_FAILED_MANIFEST_MALFORMED
2013-08-02 15:27 636Installation error: INSTALL_PA ... -
解决ADB server didn't ACK问题
2013-08-01 16:06 968之前运行eclipse执行android应用都没问题,今天突然 ... -
Android应用签名
2013-01-08 15:05 1333为了要签名? 开发Android的人这么多,完全 ... -
Android中图片与屏幕密度 .
2012-10-10 14:19 838在drawable中的图片在不同密度的设备上显示时,在屏幕上的 ... -
在电脑上安装Android模拟器-部分更新详解
2012-10-09 17:03 1341本文根据如下的模拟器 ... -
android 反射机制中 getMethod()和getDeclaredField()区别
2012-09-15 11:33 10332今天在程序中用到java反 ... -
android2.2 的cookie
2012-08-29 19:22 890public static void getCookies(H ... -
把第三方的jar打包到android的apk文件中
2012-08-23 16:34 2376在android项目中新建一个文件夹libs,必须用这个,不能 ... -
Android调用天气预报的WebService简单例子
2012-08-23 11:47 979下面例子改自网上例子:http://express.ruank ... -
android 正则表达式
2012-08-21 15:58 1223只能输入数字:"^[0-9]*$"。只能输 ... -
用反射功能找不到匹配的类的时候调试方法
2012-08-19 14:17 3488可以通过输出所有的methods 或者declaredMeth ... -
android 生命周期研究资料
2012-08-06 16:46 1030引言 应用程序组件有一个生命周期——一开始Android ... -
Android-----WebView使用
2012-08-01 20:06 1002大部分内容为网上整理其它高人的帖子,现只作整理,用于查看: ... -
Android开发_如何调用系统默认浏览器访问
2012-08-01 19:31 984一、启动android默认浏览 ... -
Android代码混淆的实践
2012-07-20 12:48 793发apk的时候当然要考虑保护好自己的代码,Android环境就 ... -
Android 获取文件目录以及文件的删除 .
2012-07-14 22:24 1328//看来看一下效果 //main.xml文件 & ... -
Android Intent的几种用法全面总结
2012-07-14 14:21 864Intent应该算是Android中特有的东西。你可以 ... -
最简单的获取未安装APK文件图标、包名的方法
2012-07-13 17:14 1426package lab.sodino.fetchapkicon ... -
Android获取未安装或已安装apk的版本、图标等资源 .
2012-07-12 23:06 1473在上篇博文中介绍了Android动态加载APK--代码安装、获 ... -
Android 动态加载APK--代码安装、获取资源及Intent调用已安装apk .
2012-07-12 23:05 7088最近在研究Android动态加载APK技术,偶有小得,共享一下 ...
相关推荐
本工具类,主要用于操作SD卡,主要功能:判断手机SD卡是否挂载;获取SD卡的绝对物理路径;将数据保存到SD卡;读取SD卡中的文件
android 默认安装apk 到sdcard tf 卡
来获取内置SD卡的路径,但是每款定制过的android 系统的外置SD卡的路径都不一样,那我们怎么才能去获取这个路径呢,我们可以想其它的办法,我这里提供了一个类可以获取外置SD卡或内置SD卡的 label(名称),path(路径)...
版本升级,涉及到提示用户升级、下载 apk、安装 apk 三部分.rar,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习。
android 获取外置内存卡android获取sdcard内存路径android判断外置sd卡是否存在Android 获取内外置存储卡方法
android SD卡操作的工具类的源码
android加载sd卡上没安装的apk的activity
这个可以获取到Android 6.0版本之后的sd卡的路径和存储大小,可以判断是否存在外设存储。
android读取sd卡中MP3文件
NULL 博文链接:https://justwyy.iteye.com/blog/1460612
android SD卡文件浏览器,文件读取。
新版本提供了Android手机软件、游戏的广告检测,提供安装后在PC执行运行,支持安装应用到SD卡上,支持多个设备选择。兼容Android 1.5到Android 3.2之间的手机和平板设备。 APK安装器 v3.0 中文免费版更新内容: + ...
「xapk安装器」安卓版是一款可以帮助您把 .xapk 格式文件安装到手机、平板等安卓设备上的应用工具,有了 「xapk安装器」您就基本告别了 Android APK OBB 的安装错误问题,而且让您更快捷方便滴安装或删除 .xapk 格式...
本文所述实例为一个天气预报中的android代码,主要包括了下载和安装APK、检查Apk更新、显示’已经是最新’或者’无法获取版本信息’对话框、获取当前客户端版本信息、显示版本更新通知对话框、显示下载对话框、判断...
最近做的一个Android项目,发现多款4.1操作系统的手机自带的浏览器下载apk后,在消息提示那里点击...经测试发现在手机sd卡中找到下载的apk点击又是可以安装的。 最后针对这个情况做了下解决方案的处理。详情见文档。
Android手机SD卡文件浏览器:遍历出手机Sd卡中的文件。
android通过代码读取手机sd卡中的音乐文件,放在adapter中,然后放到一个ListView中,做音乐列表
android 获取sd卡状态
写了一个demo,适用于app内部更新,并且带有弹窗提示更新内容,弹窗提示apk下载进度,状态栏发送通知提示下载进度,下载完成自动执行安装程序,适配7.0文件打开sd卡文件,适配8.0自动安装,内附超详细注释
有时候我们需要根据后缀名过滤SD卡上的文件,以实现删除,选择的操作,这个工具类可以很好的帮助你