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

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 }


你可能感兴趣的:(友盟Umeng统计、更新功能使用教程)