开发工具:android studio
集成方式:gradle在线集成
安卓版本支持:minsdkversion 19
集成准备
注册账号
使用pushsdk之前,需要先在mobtech官网注册开发者账号,并获取mobtech提供的appkey和appsecret,详情可以点击查看注册流程
mobpush后台配置
注册mobtech账号后,需要在mobtech后台进行相关信息的配置,详情可以点击查看具体配置信息
mobpush流程图
集成配置
mobpushsdk提供了两种集成方式,您可根据需要进行选择。需要注意的是,两种集成方式在功能上无任何区别,仅为集成方式不同,选取其中一种即可。
gradle集成
配置sdk地址
android studio的代码库配置方式随gradle插件的不同版本有所不同。请根据您当前gradle插件的版本,选择相应的配置方式。
【7.0及以上版本】
打开项目级“settings.gradle”文件,配置maven仓地址,注意修改 repositoriesmode为 repositoriesmode.prefer_settings。
pluginmanagement { repositories { gradlepluginportal() google() mavencentral() maven { url https://mvn.mob.com/android } }}dependencyresolutionmanagement { // repositoriesmode.set(repositoriesmode.fail_on_project_repos) repositoriesmode.set(repositoriesmode.prefer_settings) repositories { gradlepluginportal() google() mavencentral() maven { url https://mvn.mob.com/android } }}
打开android studio项目级build.gradle文件,配置mobsdk插件地址
buildscript { dependencies { // 增加mobsdk插件配置 classpath com.mob.sdk:mobsdk2:+ // 增加google services插件配置,用于集成fcm,不集成fcm可不配置 classpath 'com.google.gms:google-services:4.3.14' }}plugins { id 'com.android.application' version 'x.x.x' apply false id 'com.android.library' version 'x.x.x' apply false}
【7.0以下版本】
打开android studio项目级build.gradle文件。
在allprojects ->repositories里面配置maven仓地址。
allprojects { repositories { maven { url https://mvn.mob.com/android } }}
在buildscript->repositories中配置maven仓地址。
buildscript { repositories { maven { url https://mvn.mob.com/android } }}
在buildscript->dependencies中配置appgallery connect插件地址
buildscript { dependencies { //增加mobsdk插件配置 classpath com.mob.sdk:mobsdk2:+ }}
添加依赖
打开应用级的build.gradle文件。
添加mob插件配置。请根据实际情况选择:
方式一:在“com.android.application” 插件下一行添加如下配置。
apply plugin: 'com.mob.sdk'
方式二:在“plugins”中添加如下配置。
plugins { id 'com.android.application' id 'com.mob.sdk'}
在文件末尾添加mob配置代码
mobsdk { appkey 替换为mobtech官方申请的appkey appsecret 替换为mobtech官方申请的appkey对应的appsecret mobpush {}}
配置标识
在gradle.properties中添加代码
mobsdk.spedition=iznao
google play 版本
如果您的应用需要上架google商店,请务必使用google play 版本。
在gradle.properties中添加代码,如已添加 mobsdk.spedition相关配置,则修改值为 gpp即可。
mobsdk.spedition=gpp
至此,gradle集成方式已经完成。
离线集成
获取sdk
在进行离线集成之前,请先联系在线客服获取离线sdk。
添加sdk
把获取到的离线sdk包放入项目中的libs文件夹内。
引入sdk
通过上一步添加sdk至项目中后,sdk包还未进行引用,需要添加下方所示引入代码后才可使用。
implementation filetree(dir: 'libs', include: ['*.aar', '*.jar'])
配置清单文件
复制下方提供的清单文件代码至您的项目androidmanifest.xml文件中。
< manifest < application
至此,离线集成方式已经完成。
配置混淆代码
在项目中添加如下混淆代码
-keep class com.mob.**{*;}-dontwarn com.mob.**
隐私授权启动业务
为保证您的app在集成mobsdk之后能够满足工信部相关合规要求,您应确保app安装首次冷启动且取得用户阅读您《隐私政策》授权之后,调用 mobsdk.submitpolicygrantresult回传隐私协议授权结果。
反之,如果用户不同意您app《隐私政策》授权,则不能调用 mobsdk.submitpolicygrantresult回传隐私协议授权结果。 请参考mobpush隐私政策
通用方案
/** * com.mob.mobsdk.class * 回传用户隐私授权结果 * @param isgranted 用户是否同意隐私协议 */ public static void submitpolicygrantresult(boolean isgranted)
增加app数据采集主动控制器方案
/** * com.mob.mobsdk.class * 回传用户隐私授权结果 * @param isgranted app数据采集主动控制器子类实例 * @param isgranted 用户是否同意隐私协议 */ public static void submitpolicygrantresult(mobcustomcontroller cont, boolean isgranted);
示例代码
注:submitpolicygrantresult是mobsdk的业务起点。调用位置开发者可以自己指定,只需在使用sdk功能之前调用即可,强烈建议开发者在终端用户点击应用隐私协议弹窗同意按钮后调用。
app数据采集主动控制器用来限制mobsdk采集并提供可选的数据维度和扩展功能。因相关信息的不收集将会对其对应的功能造成影响,请开发者结合业务实际需要进行合理配置。mobpush扩展业务功能设置可参考: https://www.mob.com/wiki/detailed?wiki=534&id=136 ,其它app数据采集主动控制器的配置方法可参考:https://www.mob.com/wiki/detailed?wiki=664&id=714
mobsdk.submitpolicygrantresult(new mobcustomcontroller() { // todo 重写控制器}, true);// 或者mobsdk.submitpolicygrantresult(true);
日志调试
请在androidmanifest.xml文件中 下添加上面配置,在日志控制台即可查看到tag为mobpushlog的相关日志:
测试确认
确认通过gradle已拉取到资源包,包名为:com.mob:mobsupportv1:xxxxxxxxx;com.mob:mobcoreult:xxxxxxxxx;com.mob:mobguiult:xxxxxxxxx@aar;com.mob:pushsdk:xxx@aar
确认 appkey已经正确的写入 androidmanifest.xml(可在app-debug.apk中的androidmanifest查看确认)
确认测试手机已经调用隐私协议接口,并上传true : mobsdk.submitpolicygrantresult(true);
确认测试手机(或者模拟器)已成功连入网络 + 客户端调用,不要使用网络代理和vpn,如果一切正常,启动项目后应有mobpushlog的日志信息,参考tag如下
功能进阶
registration id 使用说明
获取: 关于获取registration id,请点击查看mobpushsdk api 使用
使用说明: 由于mobpush推送所有形式的推送最后都会转化为对 registration id 推送,因此 registration id是推送和关联用户信息必备的标识。同时为了方便线上客户准确提供信息,减少沟通成本,我们建议您完成 sdk 集成后,将registration id 进行存储和记录,排查问题时可将registration id和任务id一起反馈,可加速排查进度
饱和变压器与非饱和变压器有何不同?
直流、交流电机区别 如何区分普通电机和变频电机?
STM32F40探索者开发板如何实现基础的远程检测以及控制
Semtech与Lacuna从太空接收信息
窨井超声波液位计在智慧城市建设的意义
MobPush:Android SDK 集成指南
瑞士研究员发明的一款对话机器人,协助实现跨物种交流!
部分网友反映小爱无法使用,小米回应正在修复
学工业机器人,PLC基础决定出师速度
基于CS1500设计的90W高效PFC电源技术
四川省政协委员吴皓提出加快培育发展人工智能产业的建议
新款iPhone的发布将带动全球5G手机高端市场占比的提升?
STM32通过命令行编译和下载keil和IAR工程的方法
5G商用一周年:5G技术很不成熟运营成本极高
凌力尔特公司推出一款新宽带、高动态范围双通道混频器 LTC5566
centos7怎么设置静态IP
为了突出小米6新品的性价比,旧小米型纷纷降价
Digi-Key被EE Awards Asia 亚洲金选奖授予“金选三大电子零组件通路商”称
对于AI企业来说,如何找到下一步的接盘者,显得尤为重要
如何选择优质的安规陶瓷电容厂家