您的位置:首页 > 其它

友盟Umeng统计、更新功能使用教程

2014-06-29 18:19 253 查看
http://www.eoeandroid.com/thread-309340-1-1.html

友盟统计分析是移动终端上不可多得的佳品,鉴于在开发中使用到,随笔写下使用过程。

友盟SDK下载(包含统计功能和自动更新功能):

第一步:导入SDK
1. 解压文件,libs 文件夹内的文件直接复制到eclipse工程同名文件夹内;
2. 将 res 内所有文件复制到eclipse工程内,合并res资源,所有资源前缀均为 umeng_ 。

第二步:添加权限及相关信息
1. 使用统计功能添加如下权限:

1
<
uses-permission

android:name
=
"android.permission.ACCESS_NETWORK_STATE"
></
uses-permission
>
2
<
uses-permission

android:name
=
"android.permission.INTERNET"
></
uses-permission
>
3
<
uses-permission

android:name
=
"android.permission.READ_PHONE_STATE"
></
uses-permission
>
4
<
uses-permission

android:name
=
"android.permission.READ_LOGS"

/>
<!--
 用于读取日志信息 -->
2. 使用统计功能添加如下信息:

1
<
application
>......
2
<
meta-data

android:value
=
"MyAppKey"

android:name
=
"UMENG_APPKEY"

/>
3
<
meta-data

android:value
=
"eoeAndroid"

android:name
=
"UMENG_CHANNEL"

/>
4
......</
application
>
提示:UMENG_APPKEY 的值可在友盟添加App获取; UMENG_CHANNEL 是市场的渠道号,用于统计用户通过哪个市场下载应用,可通过友盟提供的渠道号填写。

第三步:开始使用统计功能
1. 鉴于程序内可能有多个Activity,在此建议新建一个基类,让所有Activity继承这个类,增加代码的可重用性:

01
public

class
BaseActivity
extends

Activity {
02
03
@Override
04
protected

void
onCreate(Bundle savedInstanceState) {
05
        
super
.onCreate(savedInstanceState);
06
        
MobclickAgent.onError(
this
);
//捕捉未捕捉异常,通过调用这个方法,可以收集引起程序异常退出的错误信息,如不用可注释
07
}
08
/**
 在重载函数中为统计代码 **/
09
@Override
10
protected

void
onPause() {
11
        
super
.onPause();
12
        
MobclickAgent.onPause(
this
);
13
}
14
15
@Override
16
protected

void
onResume() {
17
        
super
.onResume();
18
        
MobclickAgent.onResume(
this
);
19
}
2. 定义好基类后,在以后生成新 Activity 过程中,可直接继承基类:

1
public

class
MyActivity
extends

BaseActivity{
2
3
@Override
4
protected

void
onCreate(Bundle savedInstanceState) {
5
        
super
.onCreate(savedInstanceState);
6
        
setContentView(R.layout.activity_splash);
7
}
8
9
}
第四步:使用自动更新功能
1. 使用自动更新功能添加如下权限:

1
<
uses-permission

android:name
=
"android.permission.WRITE_EXTERNAL_STORAGE"
></
uses-permission
>
2. 使用自动更新添加如下信息:

1
<
service

android:name
=
"com.umeng.common.net.DownloadingService"
2
android:process
=
":DownloadingService"

>
3
</
service
>
3. 开始调用更新函数,详细信息可见注释:

01
public

class
UpdateActivity
extends

BaseActivity{
02
/**
 用户手动检测更新交互按钮 **/
03
private

Button btnChecknew;
04
 
05
private

Context mContext =
this
;
06
07
@Override
08
protected

void
onCreate(Bundle savedInstanceState) {
09
        
super
.onCreate(savedInstanceState);
10
        
setContentView(R.layout.activity_update);
11
        
initview();
12
        
/**
 开始调用自动更新函数 **/
13
        
UmengUpdateAgent.update(
this
);
//从服务器获取更新信息
14
        
UmengUpdateAgent.setUpdateOnlyWifi(
false
);
//是否在只在wifi下提示更新,默认为
 true
15
        
UmengUpdateAgent.setUpdateAutoPopup(
true
);
//是否自动弹出更新对话框
16
        
UmengUpdateAgent.setDownloadListener(
null
);
//下载新版本过程事件监听,可设为
 null
17
        
UmengUpdateAgent.setDialogListener(
null
);
//用户点击更新对话框按钮的回调事件,直接
 null
18
        
//从服务器获取更新信息的回调函数
19
        
UmengUpdateAgent.setUpdateListener(
new

UmengUpdateListener() {
20
                
@Override
21
                
public

void
onUpdateReturned(
int

updateStatus,UpdateResponse updateInfo) {
22
                    
switch

(updateStatus) {
23
                    
case

0
:
//
 有更新
24
                        
UmengUpdateAgent.showUpdateDialog(mContext,
 updateInfo);
25
                        
break
;
26
                    
case

1
:
//
 无更新
27
                        
OnNotice(
"当前已是最新版."
);
28
                        
break
;
29
                    
case

2
:
//
 如果设置为wifi下更新且wifi无法打开时调用
30
                        
break
;
31
                    
case

3
:
//
 连接超时
32
                            
OnNotice(
"连接超时,请稍候重试"
);
33
                        
break
;
34
                    
}
35
                
}
36
        
});
37
}
38
private

void
initview() {
39
btnChecknew
 = (Button) findViewById(R.id.wgupdate_btn_check_new);
40
btnChecknew.setOnClickListener(
new

View.OnClickListener() {
41
        
42
        
@Override
43
        
public

void
onClick(View arg0) {
44
                
//UmengUpdateAgent.setUpdateAutoPopup(false);
45
                
UmengUpdateAgent.forceUpdate(mContext);
//先前用户可能忽略更新,“强制”弹出更新对话款
46
        
}
47
});
48
 
49
}
50
 
51
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐