注意事项
1.vivo
推送服务SDK支持的最低android版本为Android 6.0。
一、集成SDK
1.导入推送aar包
将解压后的libs文件夹中vivo_pushsdk-VERSION.aar(vivo_pushsdk-VERSION.aar为集成的jar包名字,VERSION为版本名称)拷贝到您的工程的libs文件夹中。
2.引用aar包到工程
在android项目app目录下的build.gradle中添加aar依赖。
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation 'androidx.appcompat:appcompat:1.0.2'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
// 添加aar依赖到工程
implementation files("libs/vivo_pushsdk-2.5.3.1.aar")
}
二、配置信息
1.添加权限
vivo Push集成只需要配置网络权限,请在当前工程AndroidManifest.xml中的manifest节点下添加以下代码:
<!—Vivo Push需要的权限-->
<uses-permission android:name="android.permission.INTERNET"/>
2.配置appid 、api key等信息
vivo Push集成需要配置对应的activity、appid 、app key信息,其中appid 和app key是在开发者平台中申请的,详见 vivo push 操作手册。
请在当前工程AndroidManifest.xml中的Application节点下添加以下代码:
<!--Vivo Push需要配置的service、activity-->
<service
android:name="com.vivo.push.sdk.service.CommandClientService"
android:exported="true"/>
<!--Vivo Push开放平台中应用的appid 和api key-->
<meta-data
android:name="com.vivo.push.api_key"
android:value="xxxxxxxx"/>
<meta-data
android:name="com.vivo.push.app_id"
android:value="xxxx"/>
三、启动推送
1.添加启动推送代码
在工程的Application中,添加以下代码,用来启动打开push开关,成功后即可在通知消息到达时收到通知。
// 在当前工程入口函数,建议在Application的onCreate函数中,添加以下代码
PushClient.getInstance(getApplicationContext()).initialize ();
// 打开push开关, 关闭为turnOffPush,详见api接入文档
PushClient.getInstance(getApplicationContext()).turnOnPush(new IPushActionListener() {
@Override
public void onStateChanged(int state) {
// TODO: 开关状态处理, 0代表成功
if (state != 0) {
Log.i("打开push异常[" + state + "]");
} else {
Log.i("打开push成功");
Log.i("获取当前设备的当前应用的唯一标识:" + PushClient.getInstance(context).getRegId());
}
}
});
2.自定义通知回调类
在当前工程中新建一个类 PushMessageReceiverImpl继承OpenClientPushMessageReceiver 并重载实现相关方法。并在当前工程的AndroidManifest.xml文件中,添加自定义Receiver信息,代码如下:
<!-- push应用定义消息receiver声明 -->
<receiver android:name="xxx.xxx.xxx.PushMessageReceiverImpl" >
<intent-filter>
<!-- 接收push消息 -->
<action android:name="com.vivo.pushclient.action.RECEIVE" />
</intent-filter>
</receiver>
四、处理推送消息
1.通知点击消息
当设备接收到通知消息后,查看手机的通知栏,可以看到通知栏内的该新通知展示。当点击通知时,回调PushMessageReceiverImpl#onNotificationMessageClicked方法。
示例代码:
public class PushMessageReceiverImpl extends OpenClientPushMessageReceiver {
@Override
public void onNotificationMessageClicked(Context context, UPSNotificationMessage msg) {
}
@Override
public void onReceiveRegId(Context context, String regId) {
}
}
五、混淆说明
若需要混淆app,请在混淆文件中添加以下说明,防止SDK内容被二次混淆,自定义回调类切勿混淆。
-dontwarn com.vivo.push.**
-keep class com.vivo.push.**{*; }
-keep class com.vivo.vms.**{*; }
-keep class xxx.xxx.xxx.PushMessageReceiverImpl{*;}
踩坑
坑一:
每天测试一个regId只能推送五条通知。因此,手机上会拿不到通知的。