开发者社区> 问答> 正文

移动推送五. 在应用中注册和启动移动推送

已解决

展开
收起
2018-03-22 19:39:29 725 0
1 条回答
写回答
取消 提交回答
  • 采纳回答

    详细解答可以参考官方帮助文档


    • 首先通过PushServiceFactory获取到CloudPushService,然后调用register()初始化并注册云推送通道,并确保Application上下文中进行初始化工作。

    • 请参照以下代码段进行初始化:

    1. import android.app.Application;
    2. import android.content.Context;
    3. import android.util.Log;
    4. import com.alibaba.sdk.android.push.CloudPushService;
    5. import com.alibaba.sdk.android.push.CommonCallback;
    6. import com.alibaba.sdk.android.push.noonesdk.PushServiceFactory;
    7. public class MainApplication extends Application {
    8. private static final String TAG = "Init";
    9. @Override
    10. public void onCreate() {
    11. super.onCreate();
    12. initCloudChannel(this);
    13. }
    14. /**
    15. * 初始化云推送通道
    16. * @param applicationContext
    17. */
    18. private void initCloudChannel(Context applicationContext) {
    19. PushServiceFactory.init(applicationContext);
    20. CloudPushService pushService = PushServiceFactory.getCloudPushService();
    21. pushService.register(applicationContext, new CommonCallback() {
    22. @Override
    23. public void onSuccess(String response) {
    24. Log.d(TAG, "init cloudchannel success");
    25. }
    26. @Override
    27. public void onFailed(String errorCode, String errorMessage) {
    28. Log.d(TAG, "init cloudchannel failed -- errorcode:" + errorCode + " -- errorMessage:" + errorMessage);
    29. }
    30. });
    31. }
    32. }

    【注意】

    • 如果设备成功注册,将回调callback.onSuccess()方法。
    • 但如果注册服务器连接失败,则调用callback.onFailed方法,并且自动进行重新注册,直到onSuccess为止。(重试规则会由网络切换等时间自动触发。)
    • 请在网络通畅的情况下进行相关的初始化调试,如果网络不通,或者App信息配置错误,在onFailed方法中,会有相应的错误码返回,可参考错误处理

    启动正常确认方法:

    • 回调方法callback.onSuccess()被调用。以上文接入代码为例,logcat将会打印以下日志:
    1. 11-24 12:55:51.096 15235-15535/com.alibaba.xxxx D/YourApp init cloudchannel success
    • 确认cloudchannel初始化正常,在logcat日志中:输入awcn关键字:
    1. 11-24 12:53:51.036 15235-15556/com.alibaba.xxxx E/awcn |[seq:AWCN1_1] AUTH httpStatusCode: 200
    2. 11-24 12:53:51.036 15235-15556/com.alibaba.xxxx E/awcn |[seq:AWCN1_1] status:AUTH_SUCC
    • 确认DeviceId获取正常:在初始化成功后使用 cloudPushService.getDeviceId() 获取deviceId,应该能够成功获取。
    2018-03-27 02:40:16
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
钉钉客户端自动化的应用 立即下载
低代码开发师(初级)实战教程 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载