【Android】友盟的自动更新组件
前言
又好又专业的服务能帮开发者省很多时间。一开始做项目也准备自己来统计数据、自己做自动更新,随着使用友盟服务的时间增加,渐渐放弃了这种想法,转而研究如何更充分的使用,这里分享一下使用自动更新组件的心得。
声明
欢迎转载,但请保留文章原始出处:)
博客园:http://www.cnblogs.com
农民伯伯: http://over140.cnblogs.com
正文
一、缺少res导致不能升级的问题
由于缺少了解,官网文档也没用提醒,仅仅拷贝了SDK的jar到工程里,一直不知道到底升级功能是否已经实现,关键是也不报错!今天又拿出来测试了一下,监听了一下UmengUpdateListener接口,发现客户端已经检测到了更新,但是没用弹出更新的对话框,然后就注意到了如下log:
W/ResourceType(7881): No known package when getting value for resource number 0xffffffff
虽然没用显示和umeng有关系,还是重新更新了一下jar,并且反编译了一下jar查看了一下代码,并检查了一下sdk,果然发现少拷贝了资源文件,res下还有drawable、layout、string还有东西,拷贝进项目即可!吐槽一下,好丑 - - # ,然后就有了下面:
二、自定义升级对话框
/** 版本检测 */
private void checkVersion() {
UmengUpdateAgent.setUpdateOnlyWifi(true);
UmengUpdateAgent.setUpdateAutoPopup(false);
UmengUpdateAgent.setUpdateListener(new UmengUpdateListener() { @Override
public void onUpdateReturned(int updateStatus,
UpdateResponse updateInfo) {
if (updateStatus == && updateInfo != null) {
showUpdateDialog(updateInfo.path, updateInfo.updateLog);
}
// case 0: // has update
// case 1: // has no update
// case 2: // none wifi
// case 3: // time out
}
}); UmengUpdateAgent.update(this);
} private void showUpdateDialog(final String downloadUrl, final String message) {
AlertDialog.Builder updateAlertDialog = new AlertDialog.Builder(this);
updateAlertDialog.setIcon(R.drawable.app_icon);
updateAlertDialog.setTitle(R.string.app_name);
updateAlertDialog.setMessage(getString(R.string.update_hint, message));
updateAlertDialog.setNegativeButton(R.string.update_ok,
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
try {
startActivity(new Intent(Intent.ACTION_VIEW, Uri
.parse(downloadUrl)));
} catch (Exception ex) { }
}
}).setPositiveButton(R.string.dialog_no, null);
if (!isFinishing())
updateAlertDialog.show();
}
三、参考
官网文档:http://dev.umeng.com/doc/document_update_android.html
结束
本来没打算用umeng的统计组件,主要是因为近期博客园把文件下载给封了(必须登录),然后就不得不找其他办法了。
【Android】友盟的自动更新组件的更多相关文章
- android使用友盟第三方自动更新/手动更新
最近项目用到自动更新,发现一个方便快捷的第三方组件非常好用,只需要几行代码搞定,非常适合新手使用.分享给大家一起学习. 本文档帮助您以最快速最简洁的方式集成使用自动更新组件. 一.申请友盟开发者账号创 ...
- Android 云服务器的搭建和友盟APP自动更新功能的实现
setContentView(R.layout.activity_splash); //Bmob SDK初始化--只需要这一段代码即可完成初始化 //请到Bmob官网(http://www.bmob. ...
- android-关于友盟的自动版本更新(面向小白)
今天说一下关于友盟的自动版本更新(傻瓜式版本更新) 关于自动更新的话,如果让android程序猿自己写的话还是不是那么简单的(对于我这个菜鸟来说...),又要检查当前版本,又要在服务器存储新的版本,又 ...
- Android 友盟统计的集成与使用(包含多渠道打包配置)
前言 app上线后,一般公司都希望跟踪app在市场上的使用情况.包括新增用户.活跃用户.渠道信息.错误信息等,还有例如商城类的app,需要跟踪用户最喜欢浏览哪种类型的店铺或商品.这些都可以通过集成友盟 ...
- Winform(C#.NET)自动更新组件的使用及部分功能实现
声明:核心功能的实现是由园子里圣殿骑士大哥写的,本人是基于他核心代码,按照自己需求进行修改的. 而AutoUpdaterService.xml文件生成工具是基于评论#215楼 ptangbao的代 ...
- Winform(C#.NET)自动更新组件的使用及部分功能实现(一点改进功能)
接前两篇继续: Winform(C#.NET)自动更新组件的使用及部分功能实现 Winform(C#.NET)自动更新组件的使用及部分功能实现(续) 借鉴文章:http://www.cnblogs.c ...
- Winform(C#.NET)自动更新组件的使用及部分功能实现(续)
接昨天的文章Winform(C#.NET)自动更新组件的使用及部分功能实现 强制更新的实现部分: 将DownloadConfirm窗体修改成单纯的类 public class DownloadConf ...
- Winform自动更新组件分享
作者:圣殿骑士 出处:http://www.cnblogs.com/KnightsWarrior/ 关于作者:专注于微软平台项目架构.管理和企业解决方案.自认在面向对象及面向服务领域有一定的造诣,熟悉 ...
- Android应用程序的自动更新升级(自身升级、通过tomcat)(转)
Android应用程序的自动更新升级(自身升级.通过tomcat) http://blog.csdn.net/mu0206mu/article/details/7204746 刚入手android一个 ...
随机推荐
- 九、SDP
1. SDP 1.1 服务概述 SDP, Service Discovery Protocol,服务发现协议. 1.1.1 概念 SDP提供了一种用于发现服务及这些可用服务 ...
- dp --- hdu 4939 : Stupid Tower Defense
Stupid Tower Defense Time Limit: 12000/6000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/ ...
- for循环的一种简化
数组: var arr = [1, 2, 3, 5, 6]; 传统的教科书式的循环写法: for(var i=0; i<arr.length; i++){ console.log(arr[i]) ...
- C#:基于WMI查询USB设备信息 及 Android设备厂商VID列表
/* ---------------------------------------------------------- 文件名称:WMIUsbQuery.cs 作者:秦建辉 MSN:splashc ...
- C#编程总结(一)序列化
C#编程总结(一)序列化 序列化是将对象状态转换为可保持或传输的格式的过程.与序列化相对的是反序列化,它将流转换为对象.这两个过程结合起来,可以轻松地存储和传输数据. 几种序列化技术: 1) ...
- 孙鑫MFC学习笔记10:画图/贴图
1.SetPixel在指定点设置像素 2.虚线.点线宽度必须为1 3.CColorDialog创建颜色对话框 4.需要设置CC_RGBINIT标志才能设置颜色对话框的默认颜色 5.CC_FULLOPE ...
- Linux环境下安装Tigase XMPP Server
Tigase是一种XMPP服务器,可以作为采用XMPP协议的各种IM(Instant Messeging)工具(如Pandion.Spark等)的服务器. 在Linux环境下安装Tigase的步骤如下 ...
- 上中下三个DIV,高度自适应(上高度固定,下固定,中间自适应)(代码来自X人)
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="DivDemo.aspx.c ...
- WordPress For SAE 移植
因应用商店中的自带的wordpress版本太旧,有需要用到官网上下载的最新版的,就要考虑移植了. 第一步 配置文件 网站根目录下,修改wp-config.php 数据库连接配置 第二步 附件/图片无法 ...
- Java基础复习笔记系列 九 网络编程
Java基础复习笔记系列之 网络编程 学习资料参考: 1.http://www.icoolxue.com/ 2. 1.网络编程的基础概念. TCP/IP协议:Socket编程:IP地址. 中国和美国之 ...