开发者社区 问答 正文

如何让Android SDK配置(V2.3.7及以下版本)(3)



四. Proguard配置


  1. [backcolor=transparent]-[backcolor=transparent]keepclasseswithmembernames class [backcolor=transparent]**[backcolor=transparent] [backcolor=transparent]{
  2. [backcolor=transparent]    native [backcolor=transparent]<[backcolor=transparent]methods[backcolor=transparent]>;
  3. [backcolor=transparent]}
  4. [backcolor=transparent]-[backcolor=transparent]keepattributes [backcolor=transparent]Signature
  5. [backcolor=transparent]-[backcolor=transparent]keep class sun[backcolor=transparent].[backcolor=transparent]misc[backcolor=transparent].[backcolor=transparent]Unsafe[backcolor=transparent] [backcolor=transparent]{[backcolor=transparent] [backcolor=transparent]*;[backcolor=transparent] [backcolor=transparent]}
  6. [backcolor=transparent]-[backcolor=transparent]keep class com[backcolor=transparent].[backcolor=transparent]taobao[backcolor=transparent].**[backcolor=transparent] [backcolor=transparent]{*;}
  7. [backcolor=transparent]-[backcolor=transparent]keep class com[backcolor=transparent].[backcolor=transparent]alibaba[backcolor=transparent].**[backcolor=transparent] [backcolor=transparent]{*;}
  8. [backcolor=transparent]-[backcolor=transparent]keep class com[backcolor=transparent].[backcolor=transparent]alipay[backcolor=transparent].**[backcolor=transparent] [backcolor=transparent]{*;}
  9. [backcolor=transparent]-[backcolor=transparent]dontwarn com[backcolor=transparent].[backcolor=transparent]taobao[backcolor=transparent].**
  10. [backcolor=transparent]-[backcolor=transparent]dontwarn com[backcolor=transparent].[backcolor=transparent]alibaba[backcolor=transparent].**
  11. [backcolor=transparent]-[backcolor=transparent]dontwarn com[backcolor=transparent].[backcolor=transparent]alipay[backcolor=transparent].**
  12. [backcolor=transparent]-[backcolor=transparent]keep class com[backcolor=transparent].[backcolor=transparent]ut[backcolor=transparent].**[backcolor=transparent] [backcolor=transparent]{*;}
  13. [backcolor=transparent]-[backcolor=transparent]dontwarn com[backcolor=transparent].[backcolor=transparent]ut[backcolor=transparent].**
  14. [backcolor=transparent]-[backcolor=transparent]keep class com[backcolor=transparent].[backcolor=transparent]ta[backcolor=transparent].**[backcolor=transparent] [backcolor=transparent]{*;}
  15. [backcolor=transparent]-[backcolor=transparent]dontwarn com[backcolor=transparent].[backcolor=transparent]ta[backcolor=transparent].**
  16. [backcolor=transparent]-[backcolor=transparent]keep class anet[backcolor=transparent].**{*;}
  17. [backcolor=transparent]-[backcolor=transparent]keep class org[backcolor=transparent].[backcolor=transparent]android[backcolor=transparent].[backcolor=transparent]spdy[backcolor=transparent].**{*;}
  18. [backcolor=transparent]-[backcolor=transparent]keep class org[backcolor=transparent].[backcolor=transparent]android[backcolor=transparent].[backcolor=transparent]agoo[backcolor=transparent].**{*;}
  19. [backcolor=transparent]-[backcolor=transparent]dontwarn anet[backcolor=transparent].**
  20. [backcolor=transparent]-[backcolor=transparent]dontwarn org[backcolor=transparent].[backcolor=transparent]android[backcolor=transparent].[backcolor=transparent]spdy[backcolor=transparent].**
  21. [backcolor=transparent]-[backcolor=transparent]dontwarn org[backcolor=transparent].[backcolor=transparent]android[backcolor=transparent].[backcolor=transparent]agoo[backcolor=transparent].**


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



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

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

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


启动正常确认方法:

  • 回调方法callback.onSuccess()被调用。以上文接入代码为例,logcat将会打印以下日志:
  1. [backcolor=transparent]11[backcolor=transparent]-[backcolor=transparent]24[backcolor=transparent] [backcolor=transparent]12[backcolor=transparent]:[backcolor=transparent]55[backcolor=transparent]:[backcolor=transparent]51.096[backcolor=transparent]  [backcolor=transparent]15235[backcolor=transparent]-[backcolor=transparent]15535[backcolor=transparent]/[backcolor=transparent]com[backcolor=transparent].[backcolor=transparent]alibaba[backcolor=transparent].[backcolor=transparent]xxxx D[backcolor=transparent]/[backcolor=transparent]YourApp[backcolor=transparent][backcolor=transparent] init cloudchannel success
  • 确认cloudchannel初始化正常,在logcat日志中:输入awcn关键字:
  1. [backcolor=transparent]11[backcolor=transparent]-[backcolor=transparent]24[backcolor=transparent] [backcolor=transparent]12[backcolor=transparent]:[backcolor=transparent]53[backcolor=transparent]:[backcolor=transparent]51.036[backcolor=transparent]  [backcolor=transparent]15235[backcolor=transparent]-[backcolor=transparent]15556[backcolor=transparent]/[backcolor=transparent]com[backcolor=transparent].[backcolor=transparent]alibaba[backcolor=transparent].[backcolor=transparent]xxxx E[backcolor=transparent]/[backcolor=transparent]awcn[backcolor=transparent][backcolor=transparent] [backcolor=transparent]|[[backcolor=transparent]seq[backcolor=transparent]:[backcolor=transparent]AWCN1_1[backcolor=transparent]][backcolor=transparent] AUTH httpStatusCode[backcolor=transparent]:[backcolor=transparent] [backcolor=transparent]200
  2. [backcolor=transparent]11[backcolor=transparent]-[backcolor=transparent]24[backcolor=transparent] [backcolor=transparent]12[backcolor=transparent]:[backcolor=transparent]53[backcolor=transparent]:[backcolor=transparent]51.036[backcolor=transparent]  [backcolor=transparent]15235[backcolor=transparent]-[backcolor=transparent]15556[backcolor=transparent]/[backcolor=transparent]com[backcolor=transparent].[backcolor=transparent]alibaba[backcolor=transparent].[backcolor=transparent]xxxx E[backcolor=transparent]/[backcolor=transparent]awcn[backcolor=transparent][backcolor=transparent] [backcolor=transparent]|[[backcolor=transparent]seq[backcolor=transparent]:[backcolor=transparent]AWCN1_1[backcolor=transparent]][backcolor=transparent] status[backcolor=transparent]:[backcolor=transparent]AUTH_SUCC
  • 确认DeviceId获取正常:在初始化成功后使用 cloudPushService.getDeviceId() 获取deviceId,应该能够成功获取。

展开
收起
猫饭先生 2017-10-23 10:58:42 1326 分享 版权
0 条回答
写回答
取消 提交回答