标签:
使用友盟提供的功能之前需要获取应用的AppKey
开发文档:http://dev.umeng.com/analytics/android-doc/integration
在每个Activity的onResume方法中调用 MobclickAgent.onResume(Context)
, onPause方法中调用MobclickAgent.onPause(Context)
MobclickAgent.onResume()
和MobclickAgent.onPause()
方法MobclickAgent.setSessionContinueMillis(long interval)
来自定义这个间隔(参数单位为毫秒)@Override public void onResume() { super.onResume(); MobclickAgent.onResume(this); } @Override public void onPause() { super.onPause(); MobclickAgent.onPause(this); }
onResume
和 onPause
方法统计时长, 这和基本统计中的情况一样(针对Activity)
public void onResume() { super.onResume(); MobclickAgent.onResume(this); //统计时长 } public void onPause() { super.onPause(); MobclickAgent.onPause(this); }
onPageStart
和 onPageEnd
方法统计页面(针对页面,页面可能是Activity
也可能是Fragment
或View
)
public void onResume() { super.onResume(); MobclickAgent.onPageStart("MainScreen"); //统计页面 } public void onPause() { super.onPause(); MobclickAgent.onPageEnd("MainScreen"); }
MobclickAgent.onEvent(Context context, String eventId);
MobclickAgent.onEventValue(Context context, String id, Map<String,String> m, int du)
//示例:统计一次音乐播放,包括音乐类型,作者和播放时长,可以在音乐播放结束后这么调用:
int duration = 12000; //开发者需要自己计算音乐播放时长 Map<String, String> map_value = new HashMap<String, String>(); map_value.put("type", "popular"); map_value.put("artist", "JJLin"); MobclickAgent.onEventValue(this, "music", map_value, duration);
在线参数使您可以在网站上动态配置预设好的参数的参数值。例如: 动态修改应用的欢迎语,修改应用中开关选项的"on"或"off",以及类似游戏中虚拟物品的价格等。
需要在程序的入口 Activity
中添加
MobclickAgent.updateOnlineConfig( mContext );
String value = MobclickAgent.getConfigParams( mContext, "xxxx" );
在try-catch捕获到异常后使用
public static void reportError(Context context, String error) //或 public static void reportError(Context context, Throwable e)
//只需在需要的地方添加
UmengUpdateAgent.update(this);
友盟自动更新服务首先将用户终端上的应用版本信息(version code)与友盟服务器上开发者上传的应用版本信息进行比较。如果服务器的应用版本更高,则会提示用户有新的应用版本(提示如下图所示,开发者可自定义界面)。用户选择更新之后,友盟自动更新则开始下载新版本应用,然后安装此应用。
UmengUpdateAgent.setUpdateAutoPopup(false); UmengUpdateAgent.setUpdateListener(new UmengUpdateListener() { @Override public void onUpdateReturned(int updateStatus,UpdateResponse updateInfo) { switch (updateStatus) { case UpdateStatus.Yes: // has update UmengUpdateAgent.showUpdateDialog(mContext, updateInfo); break; case UpdateStatus.No: // has no update Toast.makeText(mContext, "没有更新", Toast.LENGTH_SHORT).show(); break; case UpdateStatus.NoneWifi: // none wifi Toast.makeText(mContext, "没有wifi连接, 只在wifi下更新", Toast.LENGTH_SHORT).show(); break; case UpdateStatus.Timeout: // time out Toast.makeText(mContext, "超时", Toast.LENGTH_SHORT).show(); break; } } }); UmengUpdateAgent.update(this);
修改自定义文件:umeng_update_dialog.xml
使用默认的反馈功能
//跳转到友盟默认的反馈页面
mFeedbackAgent.startFeedbackActivity();
//回复通知
mFeedbackAgent.sync();
自定义反馈:
UserInfo info = agent.getUserInfo(); if (info == null) info = new UserInfo(); Map<String, String> contact = info.getContact(); if (contact == null) contact = new HashMap<String, String>(); String contact_info = contactInfoEdit.getEditableText() .toString(); contact.put(KEY_UMENG_CONTACT_INFO_PLAIN_TEXT, contact_info); contact.put("email", "*******"); //contact.put("qq", "*******"); //contact.put("phone", "*******"); //contact.put("plain", "*******"); info.setContact(contact); // optional, setting user gender information. info.setAgeGroup(1); info.setGender("male"); //info.setGender("female"); agent.setUserInfo(info); new Thread(new Runnable() { @Override public void run() { boolean result = fb.updateUserInfo(); } }).start();
标签:
原文地址:http://www.cnblogs.com/horrywu/p/4745637.html