差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录 前一修订版
后一修订版
前一修订版
后一修订版 两侧同时换到之后的修订记录
im:android:push:troubleshooting [2019/11/29 02:42]
huanxinfudh
im:android:push:troubleshooting [2022/02/24 09:05]
jennifer.zeng [小米推送]
行 66: 行 66:
 ===== 小米推送 ===== ===== 小米推送 =====
  
-小米推送的集成比较简单,导入小米推送的jar包,在清单AndroidManifest.xml里加上小米相关的权限和配置,如下 +首先可以检查小米的集成是否正确。小米推送的集成比较简单,导入小米推送的 jar 包,在清单 AndroidManifest.xml 里加上小米相关的权限和配置,如下权限: 
-权限:+
 <​code>​ <​code>​
-<!-- Mi推送配置 start -->+<!-- Mi 推送配置 start -->
     <​permission     <​permission
         android:​name="​${applicationId}.permission.MIPUSH_RECEIVE"​         android:​name="​${applicationId}.permission.MIPUSH_RECEIVE"​
行 75: 行 75:
  
     <​uses-permission android:​name="​${applicationId}.permission.MIPUSH_RECEIVE"​ />     <​uses-permission android:​name="​${applicationId}.permission.MIPUSH_RECEIVE"​ />
-    <!-- Mi推送配置 end -->+    <!-- Mi 推送配置 end -->
 </​code>​ </​code>​
 +
 配置: 配置:
 +
 <​code>​ <​code>​
-<!-- Mi推送配置 start -->+<!-- Mi 推送配置 start -->
         <service         <service
             android:​name="​com.xiaomi.push.service.XMPushService"​             android:​name="​com.xiaomi.push.service.XMPushService"​
行 90: 行 92:
             android:​exported="​false"​             android:​exported="​false"​
             android:​permission="​android.permission.BIND_JOB_SERVICE"​             android:​permission="​android.permission.BIND_JOB_SERVICE"​
-            android:​process=":​pushservice"​ /> <​!--注:此service必须在3.0.1版本以后(包括3.0.1版本)加入-->​+            android:​process=":​pushservice"​ /> <​!--注:此 service 必须在 3.0.1 版本以后(包括 3.0.1 版本)加入-->​
  
         <service         <service
行 99: 行 101:
         <service         <service
             android:​name="​com.xiaomi.mipush.sdk.MessageHandleService"​             android:​name="​com.xiaomi.mipush.sdk.MessageHandleService"​
-            android:​enabled="​true"​ /> <​!--注:此service必须在2.2.5版本以后(包括2.2.5版本)加入-->​+            android:​enabled="​true"​ /> <​!--注:此 service 必须在 2.2.5 版本以后(包括 2.2.5 版本)加入-->​
         <​receiver         <​receiver
             android:​name="​com.xiaomi.push.service.receivers.NetworkStatusReceiver"​             android:​name="​com.xiaomi.push.service.receivers.NetworkStatusReceiver"​
行 121: 行 123:
         </​receiver>​         </​receiver>​
  
-        <​receiver android:​name="​com.hyphenate.chatuidemo.receiver.MyxmReceiver">+        <​receiver android:​name="​com.hyphenate.push.platform.mi.EMMiMsgReceiver">
             <​intent-filter>​             <​intent-filter>​
                 <action android:​name="​com.xiaomi.mipush.RECEIVE_MESSAGE"​ />                 <action android:​name="​com.xiaomi.mipush.RECEIVE_MESSAGE"​ />
行 132: 行 134:
             </​intent-filter>​             </​intent-filter>​
         </​receiver>​         </​receiver>​
-        <!-- Mi推送配置 end-->+        <!-- Mi 推送配置 end-->
 </​code>​ </​code>​
-在初始化环信之前去设置上小米推送的appidappkey+ 
 +在初始化环信之前去设置上小米推送的 ​Appid 和 App Key: 
 <​code>​ <​code>​
 EMPushConfig.Builder builder = new EMPushConfig.Builder(context);​ EMPushConfig.Builder builder = new EMPushConfig.Builder(context);​
行 140: 行 144:
 options.setPushConfig(builder.build());​ options.setPushConfig(builder.build());​
 </​code>​ </​code>​
-然后运行app去登录,查看logcat里的日志检索EMPushHelper确认下小米推送是否集成成功+ 
 +然后运行 ​App 去登录,查看 logcat 里的日志检索 EMPushHelper 确认下小米推送是否集成成功。 
 <​code>​ <​code>​
-//​1、SDK判断当前设备小米推送可用+//1、SDK 判断当前设备小米推送可用
 2019-09-03 15:​52:​57.275 2984-3173/​com.hyphenate.chatuidemo D/ONE SDK: [2019/09/03 15:​52:​57:​275]:​ [EMPushHelper] isSupportPush:​ MIPUSH - true 2019-09-03 15:​52:​57.275 2984-3173/​com.hyphenate.chatuidemo D/ONE SDK: [2019/09/03 15:​52:​57:​275]:​ [EMPushHelper] isSupportPush:​ MIPUSH - true
 2019-09-03 15:​52:​57.275 2984-3173/​com.hyphenate.chatuidemo D/ONE SDK: [2019/09/03 15:​52:​57:​275]:​ [EMPushHelper] EMPushHelper register, prefer push type: MIPUSH 2019-09-03 15:​52:​57.275 2984-3173/​com.hyphenate.chatuidemo D/ONE SDK: [2019/09/03 15:​52:​57:​275]:​ [EMPushHelper] EMPushHelper register, prefer push type: MIPUSH
  
-//​2、获取到了小米返回的推送token,这里的推送token就是小米推送的regid+//​2、获取到了小米返回的推送 token,这里的推送 token 就是小米推送的 regid
 2019-09-03 15:​52:​57.725 2984-3173/​com.hyphenate.chatuidemo D/ONE SDK: [2019/09/03 15:​52:​57:​725]:​ [EMPushHelper] onReceiveToken:​ MIPUSH - Tn0uw0uGRoadNgW6TElcKCGiEwrMCo39nWomRxQU0+K+WlqvFmaHSn45vr9fLG3k 2019-09-03 15:​52:​57.725 2984-3173/​com.hyphenate.chatuidemo D/ONE SDK: [2019/09/03 15:​52:​57:​725]:​ [EMPushHelper] onReceiveToken:​ MIPUSH - Tn0uw0uGRoadNgW6TElcKCGiEwrMCo39nWomRxQU0+K+WlqvFmaHSn45vr9fLG3k
  
行 153: 行 159:
 2019-09-03 15:​52:​57.725 2984-3173/​com.hyphenate.chatuidemo D/ONE SDK: [2019/09/03 15:​52:​57:​725]:​ [EMPushHelper] Retry upload after 287s if failed. 2019-09-03 15:​52:​57.725 2984-3173/​com.hyphenate.chatuidemo D/ONE SDK: [2019/09/03 15:​52:​57:​725]:​ [EMPushHelper] Retry upload after 287s if failed.
  
-//​3、去上传推送token,后面有对应的证书名称+//​3、去上传推送 token,后面有对应的证书名称
 2019-09-03 15:​52:​57.726 2984-3173/​com.hyphenate.chatuidemo D/ONE SDK: [2019/09/03 15:​52:​57:​726]:​ [EMPushHelper] uploadTokenInternal,​ token=Tn0uw0uGRoadNgW6TElcKCGiEwrMCo39nWomRxQU0+K+WlqvFmaHSn45vr9fLG3k,​ url=https://​a5-v2.easemob.com:​443/​easemob-demo/​chatdemoui/​users/​omg4,​ notifier name=2882303761517426801 2019-09-03 15:​52:​57.726 2984-3173/​com.hyphenate.chatuidemo D/ONE SDK: [2019/09/03 15:​52:​57:​726]:​ [EMPushHelper] uploadTokenInternal,​ token=Tn0uw0uGRoadNgW6TElcKCGiEwrMCo39nWomRxQU0+K+WlqvFmaHSn45vr9fLG3k,​ url=https://​a5-v2.easemob.com:​443/​easemob-demo/​chatdemoui/​users/​omg4,​ notifier name=2882303761517426801
  
-//​4、推送token上传成功+//​4、推送 token 上传成功
 2019-09-03 15:​52:​58.930 2984-3173/​com.hyphenate.chatuidemo D/ONE SDK: [2019/09/03 15:​52:​58:​930]:​ [EMPushHelper] uploadTokenInternal success. 2019-09-03 15:​52:​58.930 2984-3173/​com.hyphenate.chatuidemo D/ONE SDK: [2019/09/03 15:​52:​58:​930]:​ [EMPushHelper] uploadTokenInternal success.
 </​code>​ </​code>​
  
-上面的是上传推送token成功的日志,可以对比你本地logcat里的日志,看是否完整。(''​需在初始化环信SDK的时候设置EMClient.getInstance().setDebugMode(true)才会有详细的日志输出''​)+上面的是上传推送 token 成功的日志,可以对比你本地 logcat 里的日志,看是否完整。(''​需在初始化环信 SDK 的时候设置 EMClient.getInstance().setDebugMode(true) 才会有详细的日志输出''​)
  
-1、如果在这一步看到MIPUSH是false,那就是小米推送没有配置好,比如没有导入小米推送的jar,清单里的权限和配置没有加上,或者就是没有在初始化之前去设置上小米推送的appidappkey+1、如果在这一步看到 MIPUSH 是 false,那就是小米推送没有配置好,比如没有导入小米推送的 jar,清单里的权限和配置没有加上,或者就是没有在初始化之前去设置上小米推送的 ​Appid 和 App Key
  
-2、如果没有看到小米返回的推送token的日志,那应该会有输出onErrorResponse:​后面会有小米那边返回的错误码,需根据错误码去排查+2、如果没有看到小米返回的推送 token 的日志,那应该会有输出 onErrorResponse:​ 后面会有小米那边返回的错误码,需根据错误码去排查
  
-只要保证这两步是正常的,后面上传推送token的一般不会有问题,如果发现上传失败的情况,请反馈环信。然后在小米推送后台去使用regid(regid在第二步中获取)给设备推送消息,收到之后就可以杀掉进程去测试离线推送了。+只要保证这两步是正常的,后面上传推送 token 的一般不会有问题,如果发现上传失败的情况,请反馈环信。然后在小米推送后台去使用 regid(regid 在第二步中获取)给设备推送消息,收到之后就可以杀掉进程去测试离线推送了。
  
 **如果出现没有收到离线推送,需检查以下两步:** **如果出现没有收到离线推送,需检查以下两步:**
  
-1、是否有调用EMClient.getInstance().pushManager().disableOfflinePush去设置离线推送免打扰时间+1、是否有调用 EMClient.getInstance().pushManager().disableOfflinePush 去设置离线推送免打扰时间
  
-2、如果是群组消息是否有调用EMClient.getInstance().pushManager().updatePushServiceForGroup去屏蔽群组离线推送+2、如果是群组消息是否有调用 EMClient.getInstance().pushManager().updatePushServiceForGroup 去屏蔽群组离线推送
  
-如果以上两步都没有去设置,需要提供消息内容、消息时间和接收方id反馈给环信来查+如果以上两步都没有去设置,需要提供消息内容、消息时间和接收方 ​ID 反馈给环信来查
  
 ===== OPPO推送 ===== ===== OPPO推送 =====
行 192: 行 198:
 options.setPushConfig(builder.build()); ​ options.setPushConfig(builder.build()); ​
 </​code>​ </​code>​
-4、需要在消息扩展里设置上oppochannel id+4、oppo给8.0系统之后的手机发推送需要设置通道ID,环信这边推送给oppo的时候会加上默认的通道ID:“hyphenate_chatuidemo_notification”,如果需要指定准确的通道ID就需要在消息扩展里设置项目本地使用channelID
 <​code>​ <​code>​
-// 设置自定义推送提示+// 设置推送通道ID
 JSONObject extObject = new JSONObject();​ JSONObject extObject = new JSONObject();​
 try { try {
-    extObject.put("​em_oppo_push_channel_id", ​channelId);+    extObject.put("​em_push_channel_id", ​”channelID“);
 } catch (JSONException e) { } catch (JSONException e) {
     e.printStackTrace();​     e.printStackTrace();​
行 245: 行 251:
 如果以上两步都没有去设置,需要提供消息内容、消息时间和接收方id反馈给环信来查 如果以上两步都没有去设置,需要提供消息内容、消息时间和接收方id反馈给环信来查
  
-===== VIVO推送 =====+===== VIVO 推送 =====
    
-集成VIVO推送具体文件参考[[http://​docs-im.easemob.com/​im/​android/​push/​thirdpartypush#​vivo_%E6%8E%A8%E9%80%81%E9%9B%86%E6%88%90|VIVO推送集成]]+集成 VIVO 推送具体文件参考[[http://​docs-im.easemob.com/​im/​android/​push/​thirdpartypush#​vivo_%E6%8E%A8%E9%80%81%E9%9B%86%E6%88%90|VIVO推送集成]]
  
-**集成OPPO推送时需要注意以下几点:**+**集成 OPPO 推送时需要注意以下几点:**
  
 1、测试的VIVO机型是否是支持VIVO推送的,详情可见[[https://​dev.vivo.com.cn/​documentCenter/​doc/​156 | VIVO官网文档_支持机型和系统]] 1、测试的VIVO机型是否是支持VIVO推送的,详情可见[[https://​dev.vivo.com.cn/​documentCenter/​doc/​156 | VIVO官网文档_支持机型和系统]]
行 255: 行 261:
 2、需要在手机通知管理里打开该应用的允许通知权限 2、需要在手机通知管理里打开该应用的允许通知权限
  
-集成完成之后运行app去登录,在logcat里检索EMPushHelper查看日志确定下是否集成成功+集成完成之后运行 ​App 去登录,在 logcat 里检索 EMPushHelper 查看日志确定下是否集成成功
  
 <​code>​ <​code>​
-//​1、SDK判断当前设备VIVO推送可用+//1、SDK 判断当前设备 VIVO 推送可用
 2019-10-14 14:​57:​33.231 24337-24437/​com.hyphenate.chatuidemo D/ONE SDK: [2019/10/14 14:​57:​33:​231]:​ [EMPushHelper] isSupportPush:​ FCM - false 2019-10-14 14:​57:​33.231 24337-24437/​com.hyphenate.chatuidemo D/ONE SDK: [2019/10/14 14:​57:​33:​231]:​ [EMPushHelper] isSupportPush:​ FCM - false
 2019-10-14 14:​57:​33.245 24337-24437/​com.hyphenate.chatuidemo D/ONE SDK: [2019/10/14 14:​57:​33:​245]:​ [EMPushHelper] isSupportPush:​ MIPUSH - false 2019-10-14 14:​57:​33.245 24337-24437/​com.hyphenate.chatuidemo D/ONE SDK: [2019/10/14 14:​57:​33:​245]:​ [EMPushHelper] isSupportPush:​ MIPUSH - false
行 267: 行 273:
 2019-10-14 14:​57:​33.303 24337-24437/​com.hyphenate.chatuidemo D/ONE SDK: [2019/10/14 14:​57:​33:​303]:​ [EMPushHelper] EMPushHelper register, prefer push type: VIVOPUSH 2019-10-14 14:​57:​33.303 24337-24437/​com.hyphenate.chatuidemo D/ONE SDK: [2019/10/14 14:​57:​33:​303]:​ [EMPushHelper] EMPushHelper register, prefer push type: VIVOPUSH
  
-//​2、获取到的VIVO返回的推送token+//​2、获取到的 VIVO 返回的推送 token
 2019-10-14 14:​57:​33.623 24337-24437/​com.hyphenate.chatuidemo D/ONE SDK: [2019/10/14 14:​57:​33:​623]:​ [EMPushHelper] onReceiveToken:​ VIVOPUSH - 15665456497861102581637 2019-10-14 14:​57:​33.623 24337-24437/​com.hyphenate.chatuidemo D/ONE SDK: [2019/10/14 14:​57:​33:​623]:​ [EMPushHelper] onReceiveToken:​ VIVOPUSH - 15665456497861102581637
 2019-10-14 14:​57:​33.623 24337-24437/​com.hyphenate.chatuidemo D/ONE SDK: [2019/10/14 14:​57:​33:​623]:​ [EMPushHelper] Retry upload after 4s if failed. 2019-10-14 14:​57:​33.623 24337-24437/​com.hyphenate.chatuidemo D/ONE SDK: [2019/10/14 14:​57:​33:​623]:​ [EMPushHelper] Retry upload after 4s if failed.
行 273: 行 279:
 2019-10-14 14:​57:​33.624 24337-24437/​com.hyphenate.chatuidemo D/ONE SDK: [2019/10/14 14:​57:​33:​624]:​ [EMPushHelper] Retry upload after 301s if failed. 2019-10-14 14:​57:​33.624 24337-24437/​com.hyphenate.chatuidemo D/ONE SDK: [2019/10/14 14:​57:​33:​624]:​ [EMPushHelper] Retry upload after 301s if failed.
  
-//​3、去上传推送token,后面有对应的证书名称+//​3、去上传推送 token,后面有对应的证书名称
 2019-10-14 14:​57:​33.624 24337-24437/​com.hyphenate.chatuidemo D/ONE SDK: [2019/10/14 14:​57:​33:​624]:​ [EMPushHelper] uploadTokenInternal,​ token=15665456497861102581637,​ url=https://​a4.easemob.com:​443/​easemob-demo/​chatdemoui/​users/​omg4,​ notifier name=11025#​9b74dbfc-55c4-4441-9d0a-561ff21addc7 2019-10-14 14:​57:​33.624 24337-24437/​com.hyphenate.chatuidemo D/ONE SDK: [2019/10/14 14:​57:​33:​624]:​ [EMPushHelper] uploadTokenInternal,​ token=15665456497861102581637,​ url=https://​a4.easemob.com:​443/​easemob-demo/​chatdemoui/​users/​omg4,​ notifier name=11025#​9b74dbfc-55c4-4441-9d0a-561ff21addc7
  
-//​4、推送token上传成功+//​4、推送 token 上传成功
 2019-10-14 14:​57:​33.760 24337-24437/​com.hyphenate.chatuidemo D/ONE SDK: [2019/10/14 14:​57:​33:​759]:​ [EMPushHelper] uploadTokenInternal success. 2019-10-14 14:​57:​33.760 24337-24437/​com.hyphenate.chatuidemo D/ONE SDK: [2019/10/14 14:​57:​33:​759]:​ [EMPushHelper] uploadTokenInternal success.
 </​code>​ </​code>​
  
-上面的是上传推送token成功的日志,可以对比你本地logcat里的日志,看下是否完整。(''​需在初始化环信SDK的时候设置EMClient.getInstance().setDebugMode(true)才会有详细的日志输出''​)+上面的是上传推送 token 成功的日志,可以对比你本地 logcat 里的日志,看下是否完整。(''​需在初始化环信 SDK 的时候设置 EMClient.getInstance().setDebugMode(true) 才会有详细的日志输出''​)
  
-1、如果在这一步看到VIVOPUSH是false,那就是VIVO推送没有配置好,比如没有导入VIVO推送的jar,清单里没有去配置VIVO的appidappkey+1、如果在这一步看到 VIVOPUSH 是 false,那就是 VIVO 推送没有配置好,比如没有导入 VIVO 推送的 jar,清单里没有去配置 VIVO 的 Appid 和 App Key;
  
-2、如果没有看到VIVO返回的推送token的日志,那应该会有输出onErrorResponse:​后面会有VIVO那边返回的错误码,需根据错误码去排查+2、如果没有看到 VIVO 返回的推送 token 的日志,那应该会有输出 onErrorResponse:​ 后面会有 VIVO 那边返回的错误码,需根据错误码去排查
  
-只要保证这两步是正常的,后面上传推送token的一般不会有问题,如果发现上传失败的情况,请反馈环信。然后在OPPO后台去使用推送token(在第二步中获取)给设备推送消息,收到可以杀掉进程去测试离线推送+只要保证这两步是正常的,后面上传推送 token 的一般不会有问题,如果发现上传失败的情况,请反馈环信。然后在 OPPO 后台去使用推送 token (在第二步中获取)给设备推送消息,收到后可以杀掉进程去测试离线推送。
  
 如果出现没有收到离线推送,需检查以下两步: 如果出现没有收到离线推送,需检查以下两步:
  
-1、是否有调用EMClient.getInstance().pushManager().disableOfflinePush去设置离线推送免打扰时间+1、是否有调用 EMClient.getInstance().pushManager().disableOfflinePush 去设置离线推送免打扰时间
  
-2、如果是群组消息是否有调用EMClient.getInstance().pushManager().updatePushServiceForGroup去屏蔽群组离线推送+2、如果是群组消息是否有调用 EMClient.getInstance().pushManager().updatePushServiceForGroup 去屏蔽群组离线推送
  
-如果以上两步都没有去设置,需要提供消息内容、消息时间和接收方id反馈给环信来查+如果以上两步都没有去设置,需要提供消息内容、消息时间和接收方 ​ID 反馈给环信技术支持来查