首先在project下得build.gradle文件中添加魅族依赖仓库
maven {url 'https://oss.jfrog.org/artifactory/oss-snapshot-local'}//魅族maven仓路径
然后在app下得build.gradle下添加
dependencies {
api 'com.meizu.flyme.internet:push-internal:3.6.+@aar'
}
然后在清单文件中添加权限(将package_name换成自己应用得包名)
<!-- 兼容flyme5.0以下版本,魅族内部集成pushSDK必填,不然无法收到消息-->
<uses-permission android:name="com.meizu.flyme.push.permission.RECEIVE"></uses-
permission>
<permission android:name="package_name.push.permission.MESSAGE"
android:protectionLevel="signature"/>
<uses-permission android:name="package_name.push.permission.MESSAGE"></uses-
permission>
<!-- 兼容flyme3.0配置权限-->
<uses-permission android:name="com.meizu.c2dm.permission.RECEIVE" />
<permission android:name="package_name.permission.C2D_MESSAGE"
android:protectionLevel="signature"></permission>
<uses-permission android:name="package_name.permission.C2D_MESSAGE"/>
然后注册广播接收者(将package_name换成自己应用中的包名)
<!-- push应用定义消息receiver声明 -->
<receiver android:name=".MyPushMsgReceiver">
<intent-filter>
<!-- 接收push消息 -->
<action android:name="com.meizu.flyme.push.intent.MESSAGE" />
<!-- 接收register消息 -->
<action android:name="com.meizu.flyme.push.intent.REGISTER.FEEDBACK" />
<!-- 接收unregister消息-->
<action android:name="com.meizu.flyme.push.intent.UNREGISTER.FEEDBACK"/>
<!-- 兼容低版本Flyme3推送服务配置 -->
<action android:name="com.meizu.c2dm.intent.REGISTRATION" />
<action android:name="com.meizu.c2dm.intent.RECEIVE" />
<category android:name="package_name"></category>
</intent-filter>
</receiver>
然后在自己的application中初始化,开始注册
public class MyApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
if(MzSystemUtils.isBrandMeizu(this)){
PushManager.register(this, appid, appkey);
}
}
}
别忘了在清单文件中将MyApplication注册一下。
然后就是我们自定义的广播接收者了
public class MyPushMsgReceiver extends MzPushMessageReceiver {
@Override
public void onRegister(Context context, String pushId) {
}
@Override
public void onUnRegister(Context context, boolean success) {
}
@Override
public void onPushStatus(Context context, PushSwitchStatus pushSwitchStatus) {
}
@Override
public void onRegisterStatus(Context context, RegisterStatus registerStatus) {
Log.i("lng", "onRegisterStatus: " + registerStatus.toString());
}
@Override
public void onUnRegisterStatus(Context context, UnRegisterStatus unRegisterStatus) {
}
@Override
public void onSubTagsStatus(Context context, SubTagsStatus subTagsStatus) {
}
@Override
public void onSubAliasStatus(Context context, SubAliasStatus subAliasStatus) {
}
}
然后订阅成功了之后在onRegisterStatus的回调中打印一下registerStatus.toString得到日志信息
2019-05-28 16:21:03.140 14032-14049/com.example.mz_push I/lng: onRegisterStatus: BasicPushStatus{code='200', message='already register PushId,dont register frequently'}pushId='************************************', Become invalid after 595845 seconds }
然后code200代表成功,然后打印出来的PushId就是我们用户需要给后台传递的,也就是魅族开放平台需要的唯一标志,根据唯一标志给客户端进行消息的推送。