MobPush:Android SDK 集成指南

开发工具:Android Studio
集成方式:Gradle在线集成
安卓版本支持:minSdkVersion 19

集成准备

注册账号

使用PushSDK之前,需要先在MobTech官网注册开发者账号,并获取MobTech提供的AppKey和AppSecret,详情可以点击查看注册流程link

MobPush后台配置

注册MobTech账号后,需要在MobTech后台进行相关信息的配置,详情可以点击查看具体配置信息link

MobPush流程图

图片

集成配置

配置SDK地址

Android Studio的代码库配置方式随Gradle插件的不同版本有所不同。请根据您当前Gradle插件的版本,选择相应的配置方式。
【7.0及以上版本】
1.打开项目级“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"}}
}

2.打开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 falseid 'com.android.library' version 'x.x.x' apply false
}

【7.0以下版本】

1.打开Android Studio项目级build.gradle文件。
2.在allprojects ->repositories里面配置maven仓地址。

allprojects {repositories {maven {url "https://mvn.mob.com/android"}}
}

3.在buildscript->repositories中配置maven仓地址。

buildscript {repositories {maven {url "https://mvn.mob.com/android"}}
}

4.在buildscript->dependencies中配置AppGallery Connect插件地址

buildscript {dependencies {//增加MobSDK插件配置classpath "com.mob.sdk:MobSDK2:+"}
}
添加依赖

1.打开应用级的build.gradle文件。
2.添加mob插件配置。请根据实际情况选择:

  • 方式一:在“com.android.application” 插件下一行添加如下配置。
apply plugin: 'com.mob.sdk'
  • 方式二:在“plugins”中添加如下配置。
plugins {id 'com.android.application'id 'com.mob.sdk'
}

3.在文件末尾添加mob配置代码

MobSDK {appKey "替换为MobTech官方申请的appkey"appSecret "替换为MobTech官方申请的appkey对应的appSecret"MobPush {}
}
配置标识

在gradle.properties中添加代码

MobSDK.spEdition=FP
Google Play 版本

如果您的应用需要上架Google商店,请务必使用Google Play 版本。
在gradle.properties中添加代码,如已添加MobSDK.spEdition=FP相关配置,则修改FP为GPP即可。

MobSDK.spEdition=GPP
配置混淆代码

在项目中添加如下混淆代码

-keep class com.mob.**{*;}
-dontwarn com.mob.**

隐私授权

为保证您的App在集成MobSDK之后能够满足工信部相关合规要求,您应确保App安装首次冷启动且取得用户阅读您《隐私政策》授权之后,调用MobSDK.submitPolicyGrantResult回传隐私协议授权结果。

反之,如果用户不同意您App《隐私政策》授权,则不能调用MobSDK.submitPolicyGrantResult回传隐私协议授权结果。 请参考合规指南link

/*** com.mob.MobSDK.class* 回传用户隐私授权结果* @param isGranted     用户是否同意隐私协议*/  
public static void submitPolicyGrantResult(boolean isGranted)

示例代码 注:调用位置开发者可以自己指定,只需在使用SDK功能之前调用即可,强烈建议开发者在终端用户点击应用隐私协议弹窗同意按钮后调用。

MobSDK.submitPolicyGrantResult(true);

日志调试

请在AndroidManifest.xml文件中 下添加上面配置,在日志控制台即可查看到TAG为MobPushLog的相关日志:

<meta-dataandroid:name="com.mob.mobpush.debugLevel"android:value="4" />

图片

测试确认

  • 确认通过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 使用link

使用说明: 由于MobPush推送所有形式的推送最后都会转化为对 Registration ID 推送,因此 Registration ID是推送和关联用户信息必备的标识。同时为了方便线上客户准确提供信息,减少沟通成本,我们建议您完成 SDK 集成后,将Registration ID 进行存储和记录,排查问题时可将Registration ID和任务ID一起反馈,可加速排查进度

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/28356.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

STM32 ws2812b多屏驱动程序

文章目录 前言一、ws2812b的数据传输以及屏幕的组合二、代码ws2812screen.c文件ws2812screen.h文件主函数 前言 在上篇文章中使用了stm32的dmatim的方式点亮了ws2812b的灯 但是我的需求不仅仅是点亮他&#xff0c;我需要他像屏幕一样显示某一些东西&#xff0c;ws2812显示有一…

吴恩达ML2022-用于手写数字识别的神经网络

1 用到的包 导入在这个分配过程中需要的所有包。 Numpy 是使用 Python 进行科学计算的基本软件包。Matplotlib 是在 Python 中绘制图形的流行库。tensorflow是一种流行的机器学习平台。 import numpy as np import tensorflow as tf from tensorflow.keras.models import Se…

【运维】第04课:入口网关服务注册发现-Openrety 动态 uptream

本课时,我将带你一起了解入口网关服务的注册发现,并使用 OpenResty 实现一套动态 Upstream。 课前学习提示 基于本课时我们将要学习的内容,我建议你课前先了解一下 Nginx 的基础,同时熟悉基础的 Lua 语言语法,另外再回顾一下 HTTP 的请求过程,对于 Nginx 的负载均衡基本…

idea新建xml模板设置,例如:mybatis-config

在idea怎么新建mapper.xml文件&#xff0c;具体操作步骤和结果如下&#xff0c;其他文件也是可以自定义模板的流程和步骤一致&#xff01; 效果如下&#xff1a; 步骤如图&#xff1a; step1&#xff1a; step2&#xff1a; 文件内容&#xff1a; <?xml version"…

vue复习

1.mustache动态插值 <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"widthdevice-width, initial-scale…

常见的前端安全以及常规安全策略

1、CSRF&#xff1a;跨站请求伪造&#xff08;Cross-site request forgery&#xff09;&#xff1b; 原理&#xff1a; &#xff08;1&#xff09; 用户C打开浏览器&#xff0c;访问受信任网站A&#xff0c;输入用户名和密码请求登录网站A&#xff1b; &#xff08;2&#xff…

python VTK vtkImplicitBoolean 布尔切割

VTK中包含可以执行布尔操作的接口有vtkImplicitBoolean&#xff0c;vtkBooleanOperationPolyDataFilter&#xff0c;vtkLoopBooleanPolyDataFilter。 布尔操作包括&#xff1a;布尔加&#xff0c;布尔减和布尔交。 code: #!/usr/bin/env python""" This examp…

阿里云 OSS 静态网站托管

本文节选自我的博客&#xff1a;阿里云 OSS 静态网站托管 &#x1f496; 作者简介&#xff1a;大家好&#xff0c;我是MilesChen&#xff0c;偏前端的全栈开发者。&#x1f4dd; CSDN主页&#xff1a;爱吃糖的猫&#x1f525;&#x1f4e3; 我的博客&#xff1a;爱吃糖的猫&…

基于虚拟同步发电机控制的双机并联MATLAB仿真模型

使用MATLAB2021b打开 主要内容&#xff1a; 功率计算模块、虚拟同步发电机控制模块、电压合成模块、电压电流双环控制模块&#xff01; 1.两台VSG并联&#xff0c;开始各自带负载10KW&#xff0c;在0.3秒的时候加入公共负载10KW&#xff0c;稳定后两台VSG可以均分公共负载的…

数据结构--时间复杂度与空间复杂度

数据结构–时间复杂度与空间复杂度 文章目录 数据结构--时间复杂度与空间复杂度时间复杂度一、什么是时间复杂度二、具体实例1.大O的渐进表示法2.二分查找的时间复杂度 空间复杂度一、什么是空间复杂度二、具体实例总结 时间复杂度 一、什么是时间复杂度 在计算机科学中&…

华为数通智选交换机S5735S-L24T4S-QA2无法SSH远程访问

以前都是按照华为S5700交换机开启SSH远程访问方法配置不同网段通过静态路由实现互通,华为S5700交换机开启ssh远程登陆,现在新买的华为数通智选交换机S5735S-L24T4S-QA2,也是按照这步骤配置,令人不解的是,竟然无法ssh访问,仔细看了配置也没有发现问题,在华为eNSP模拟器上验…

C++进阶—哈希/unordered系列关联式容器/底层结构(一篇文章学习哈希)

目录 0. 前言map/set和unordered_map/unordered_set 1. unordered系列关联式容器 1.1 unordered_map 1.1.2 unordered_map的接口说明 1. unordered_map的构造 2. unordered_map的容量 3. unordered_map的迭代器 4. unordered_map的元素访问 5. unordered_map的查询 6…