四. Proguard配置
- [backcolor=transparent]-[backcolor=transparent]keepclasseswithmembernames class [backcolor=transparent]**[backcolor=transparent] [backcolor=transparent]{
- [backcolor=transparent] native [backcolor=transparent]<[backcolor=transparent]methods[backcolor=transparent]>;
- [backcolor=transparent]}
- [backcolor=transparent]-[backcolor=transparent]keepattributes [backcolor=transparent]Signature
- [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]}
- [backcolor=transparent]-[backcolor=transparent]keep class com[backcolor=transparent].[backcolor=transparent]taobao[backcolor=transparent].**[backcolor=transparent] [backcolor=transparent]{*;}
- [backcolor=transparent]-[backcolor=transparent]keep class com[backcolor=transparent].[backcolor=transparent]alibaba[backcolor=transparent].**[backcolor=transparent] [backcolor=transparent]{*;}
- [backcolor=transparent]-[backcolor=transparent]keep class com[backcolor=transparent].[backcolor=transparent]alipay[backcolor=transparent].**[backcolor=transparent] [backcolor=transparent]{*;}
- [backcolor=transparent]-[backcolor=transparent]dontwarn com[backcolor=transparent].[backcolor=transparent]taobao[backcolor=transparent].**
- [backcolor=transparent]-[backcolor=transparent]dontwarn com[backcolor=transparent].[backcolor=transparent]alibaba[backcolor=transparent].**
- [backcolor=transparent]-[backcolor=transparent]dontwarn com[backcolor=transparent].[backcolor=transparent]alipay[backcolor=transparent].**
- [backcolor=transparent]-[backcolor=transparent]keep class com[backcolor=transparent].[backcolor=transparent]ut[backcolor=transparent].**[backcolor=transparent] [backcolor=transparent]{*;}
- [backcolor=transparent]-[backcolor=transparent]dontwarn com[backcolor=transparent].[backcolor=transparent]ut[backcolor=transparent].**
- [backcolor=transparent]-[backcolor=transparent]keep class com[backcolor=transparent].[backcolor=transparent]ta[backcolor=transparent].**[backcolor=transparent] [backcolor=transparent]{*;}
- [backcolor=transparent]-[backcolor=transparent]dontwarn com[backcolor=transparent].[backcolor=transparent]ta[backcolor=transparent].**
- [backcolor=transparent]-[backcolor=transparent]keep class anet[backcolor=transparent].**{*;}
- [backcolor=transparent]-[backcolor=transparent]keep class org[backcolor=transparent].[backcolor=transparent]android[backcolor=transparent].[backcolor=transparent]spdy[backcolor=transparent].**{*;}
- [backcolor=transparent]-[backcolor=transparent]keep class org[backcolor=transparent].[backcolor=transparent]android[backcolor=transparent].[backcolor=transparent]agoo[backcolor=transparent].**{*;}
- [backcolor=transparent]-[backcolor=transparent]dontwarn anet[backcolor=transparent].**
- [backcolor=transparent]-[backcolor=transparent]dontwarn org[backcolor=transparent].[backcolor=transparent]android[backcolor=transparent].[backcolor=transparent]spdy[backcolor=transparent].**
- [backcolor=transparent]-[backcolor=transparent]dontwarn org[backcolor=transparent].[backcolor=transparent]android[backcolor=transparent].[backcolor=transparent]agoo[backcolor=transparent].**
五. 在应用中注册和启动移动推送
首先通过PushServiceFactory获取到CloudPushService,然后调用register()初始化并注册云推送通道,并确保Application上下文中进行初始化工作。
请参照以下代码段进行初始化:
- [backcolor=transparent]import[backcolor=transparent] android[backcolor=transparent].[backcolor=transparent]app[backcolor=transparent].[backcolor=transparent]Application[backcolor=transparent];
- [backcolor=transparent]import[backcolor=transparent] android[backcolor=transparent].[backcolor=transparent]content[backcolor=transparent].[backcolor=transparent]Context[backcolor=transparent];
- [backcolor=transparent]import[backcolor=transparent] android[backcolor=transparent].[backcolor=transparent]util[backcolor=transparent].[backcolor=transparent]Log[backcolor=transparent];
- [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];
- [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];
- [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];
- [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];
- [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]{
- [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];
- [backcolor=transparent] [backcolor=transparent]@Override
- [backcolor=transparent] [backcolor=transparent]public[backcolor=transparent] [backcolor=transparent]void[backcolor=transparent] onCreate[backcolor=transparent]()[backcolor=transparent] [backcolor=transparent]{
- [backcolor=transparent] [backcolor=transparent]super[backcolor=transparent].[backcolor=transparent]onCreate[backcolor=transparent]();
- [backcolor=transparent] initCloudChannel[backcolor=transparent]([backcolor=transparent]this[backcolor=transparent]);
- [backcolor=transparent] [backcolor=transparent]}
- [backcolor=transparent] [backcolor=transparent]/**
- [backcolor=transparent] * 初始化云推送通道
- [backcolor=transparent] * @param applicationContext
- [backcolor=transparent] */
- [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]{
- [backcolor=transparent] [backcolor=transparent]PushServiceFactory[backcolor=transparent].[backcolor=transparent]init[backcolor=transparent]([backcolor=transparent]applicationContext[backcolor=transparent]);
- [backcolor=transparent] [backcolor=transparent]CloudPushService[backcolor=transparent] pushService [backcolor=transparent]=[backcolor=transparent] [backcolor=transparent]PushServiceFactory[backcolor=transparent].[backcolor=transparent]getCloudPushService[backcolor=transparent]();
- [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]{
- [backcolor=transparent] [backcolor=transparent]@Override
- [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]{
- [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]);
- [backcolor=transparent] [backcolor=transparent]}
- [backcolor=transparent] [backcolor=transparent]@Override
- [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]{
- [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]);
- [backcolor=transparent] [backcolor=transparent]}
- [backcolor=transparent] [backcolor=transparent]});
- [backcolor=transparent] [backcolor=transparent]}
- [backcolor=transparent]}
[backcolor=transparent]【注意】:
- 如果设备成功注册,将回调callback.onSuccess()方法。
- 但如果注册服务器连接失败,则调用callback.onFailed方法,并且自动进行重新注册,直到onSuccess为止。(重试规则会由网络切换等时间自动触发。)
- 请在网络通畅的情况下进行相关的初始化调试,如果网络不通,或者App信息配置错误,在onFailed方法中,会有相应的错误码返回,可参考错误处理。
启动正常确认方法:
- 回调方法callback.onSuccess()被调用。以上文接入代码为例,logcat将会打印以下日志:
- [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关键字:
- [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
- [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,应该能够成功获取。