您的位置:首页 > 其它

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

2017-06-23 00:00 459 查看
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
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐