友盟统计使用及添加测试设备(设备ID及Mac地址识别)
来源:互联网 发布:软件功能点估算 编辑:程序博客网 时间:2024/05/17 01:41
友盟统计新增用户,日活,抓bug日志
注册账号并申请Appkey
拿到自己App的Appkey之后,Manifest中检查以下权限,没有则添加
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission><uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /><uses-permission android:name="android.permission.INTERNET"></uses-permission><uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission>
<meta-data android:value="YOUR_APP_KEY" android:name="UMENG_APPKEY"></meta-data><meta-data android:value="Channel ID" android:name="UMENG_CHANNEL"/>
YOUR_APP_KEY就是我们上一步骤中申请的Appkey,Appkey可在统计后台的 统计分析->设置->应用信息页面查看
相应Activity中调用代码
public void onResume() {super.onResume();MobclickAgent.onResume(this);}public void onPause() {super.onPause();MobclickAgent.onPause(this);}注意:如果Activity之间有继承或者控制关系请不要同时在父和子Activity中重复添加onPause和onResume方法,否则会造成重复统计,导致启动次数异常增高
调用Process.kill或者System.exit之类的方法杀死进程,请务必在此之前调用MobclickAgent.onKillProcess(Context context)方法,用来保存统计数据
可在友盟后台添加测试设备,通过设备ID及Mac地址识别,友盟提供的方法如下
public static boolean checkPermission(Context context, String permission) { boolean result = false; if (Build.VERSION.SDK_INT >= 23) { try { Class<?> clazz = Class.forName("android.content.Context"); Method method = clazz.getMethod("checkSelfPermission", String.class); int rest = (Integer) method.invoke(context, permission); if (rest == PackageManager.PERMISSION_GRANTED) { result = true; } else { result = false; } } catch (Exception e) { result = false; } } else { PackageManager pm = context.getPackageManager(); if (pm.checkPermission(permission, context.getPackageName()) == PackageManager.PERMISSION_GRANTED) { result = true; } } return result;}public static String getDeviceInfo(Context context) { try { org.json.JSONObject json = new org.json.JSONObject(); android.telephony.TelephonyManager tm = (android.telephony.TelephonyManager) context .getSystemService(Context.TELEPHONY_SERVICE); String device_id = null; if (checkPermission(context, permission.READ_PHONE_STATE)) { device_id = tm.getDeviceId(); } String mac = null; FileReader fstream = null; try { fstream = new FileReader("/sys/class/net/wlan0/address"); } catch (FileNotFoundException e) { fstream = new FileReader("/sys/class/net/eth0/address"); } BufferedReader in = null; if (fstream != null) { try { in = new BufferedReader(fstream, 1024); mac = in.readLine(); } catch (IOException e) { } finally { if (fstream != null) { try { fstream.close(); } catch (IOException e) { e.printStackTrace(); } } if (in != null) { try { in.close(); } catch (IOException e) { e.printStackTrace(); } } } } json.put("mac", mac); if (TextUtils.isEmpty(device_id)) { device_id = mac; } if (TextUtils.isEmpty(device_id)) { device_id = android.provider.Settings.Secure.getString(context.getContentResolver(), android.provider.Settings.Secure.ANDROID_ID); } json.put("device_id", device_id); return json.toString(); } catch (Exception e) { e.printStackTrace(); } return null;}调用getDeviceInfo方法,其结果可输出设备信息
1 0
- 友盟统计使用及添加测试设备(设备ID及Mac地址识别)
- ZigBee获取本设备及父设备的Mac地址和网络短地址
- 设备识别及文件查找
- Android 获取设备分辨率、设备ID、设备CUP、设备位置、MAC地址、以及存储信息
- i2c_probe()及I2C设备地址
- 使用Python实现获取设备名及地址
- nRF52832 — 修改设备ID和mac地址
- 设备自身MAC地址
- 获取设备mac地址
- 获取设备IP及路由器地址
- 获取设备mac和设备id
- 根据mac地址+deviceid获取设备唯一编码 获取手机及SIM卡相关信息
- 关于获取设备的唯一设备ID,MAC地址 IOS/Android问题
- CC2640之广播设备名上添加MAC地址
- mac下识别android设备
- USB设备驱动及测试1
- 获取ios设备mac地址
- ios获取设备mac地址
- Flink分布式缓存
- 系统级dialog与软键盘的冲突处理
- 火车头采集器 采集https网站 以及网站cookie 避免 蜘蛛 爬虫 程序等
- 解决爬虫错误:urllib.error.URLError: <urlopen error [WinError 10060]
- 10.二进制中1的个数
- 友盟统计使用及添加测试设备(设备ID及Mac地址识别)
- TMS320C6678
- 负载均衡的方式
- 字符集与编码一之charset and encoding
- java加密算法之AES小记
- How to enable TRACE_EVENT in WebRTC codes
- EventBus: Could not dispatch event: class com.********.LoginEvent to subscribing class
- C#动态调用WebService方法之WS代理
- jQuery 事件