This topic summarizes the common problems that may appear in the process of integrating and using Message Push Service, and provides the corresponding solutions to solve those problems.
General questions
Description on permissions
For Android 6.0 and later versions, users need to manually grant permissions to the phone, such as reading/writing SD cards. To send messages more precisely, we recommend that developers provide a guide to users on how to grant the required permissions for the notifications.
Logs cannot be printed
For Meizu phones, if log.d
and log.i
cannot be printed, you can choose Settings > Accessibility Options > Developer Options and turn on Advanced Log Output.
In case of development issues, you can set tag=mpush
to filter logs.
Android related questions
Port resolution problems in baseline versions 10.1.60.5 ~ 10.1.60.7
In private cloud environments, for the message push using ports other than 443, the resolution of server configurations will fail, and cause connection errors.
Solution:
If you use the config file for packaging, modify the config file as follows:
//Ignore the rest of the config file and add \\{white space} before the custom port number. { "pushPort":"\\ 8000", }
If you do not use the config file for packaging, change the value of
rome.push.port
inAndroidManifest.xml
as follows://Add \{white space} before the port number. <meta-data android:name="rome.push.port" android:value="\ 8000" />
Failed to push messages after accessing Huawei, Xiaomi and other third-party channels
You need to turn on the settings for the corresponding channels in the mPaaS Message Push Service console. Refer to Code sample for sample code, usage and notes.
Notes on the generation of push ad-token (deviceId)
The server generates deviceId with dependency on IMSI and IMEI. So, you are suggested guide the users to grant the “READ_PHONE_STATE” permission.
Does message push on the notification bar have version restrictions for EMUI and Huawei mobile services?
There are version restrictions for Emotion UI and Huawei mobile services. Emotion UI, EMUI for short, is an emotional operating system based on Android and is developed by Huawei.
For detailed version requirements, see Conditions for devices to receive Huawei notifications.
Cannot print logs for Huawei phones
In the dialing UI of the phone, enter *#*#2846579#*#* to enter Project menu > Background settings > LOG settings and select AP Logs. After the phone restarts, Logcat will start to take effect.
What should I do when my Huawei phone receives a push error code?
For more information about error codes, see Client error code description and Server error code description on Huawei official website.
Models and system versions supported by OPPO Push
Currently, OPPO phone models running ColorOS 3.1 and newer systems, OnePlus 5/5T and newer phone models, and all realme phone models are supported.
ColorOS is a highly-customized, efficient, intelligent, and richly-designed Android-based mobile OS by OPPO.
What should I do when my OPPO phone receives a push error code?
When OPPO push does not work, you can search for “OPPO onRegister error =” in client logs to obtain the error code. Then find the corresponding causes by referring to OPPO error codes.
Models and system versions supported by vivo Push
The models and oldest system versions supported by vivo Push are listed in the following table. For other questions on vivo push, see vivo Push FAQs.
What should I do when my vivo phone receives a push error code?
When vivo Push does not work, you can search for “fail to turn on vivo Push state =” in client logs to obtain the status code and find the specific causes by referring to Public status codes.
Troubleshooting procedure for common Android problems
Check whether the
Manifest
file is configured correctly.Check whether the appId (Huawei, Xiaomi, or vivo), appSecret (Xiaomi or OPPO), appKey (OPPO or vivo), and ALIPUSH_APPID (mPaaS) are consistent with the app registration information on the corresponding development platform.
Check the Logcat logs tagged as mpush.
iOS related questions
Whether there will be a banner or sound alert for messages when the app runs in the foreground
The default mechanism for Apple is that when an app is in foreground, the messages can arrive but will be not shown. In order to show messages in foreground, you need to implement it manually.
Message status is NoBindInfo
NoBindInfo means the user pushes messages by UserId, but no corresponding information is found based on the UserId. Please check if the client has called the binding API, and if the corresponding appId workspaceId are consistent.
Message status is BadDeviceToken
This status will only appear for iOS pushes, indicating that the actually pushed token is invalid. First, check if the environment of the certificate is correct.
If the app is packaged with a development certificate, the push console configuration requires a development environment certificate, while Xcode requires a developer certificate for debugging in real devices.
If the app is packaged with a production certificate, the push console configuration requires a production environment certificate.
Message status is DeviceTokenNotForTopic
This status will only appear for iOS pushes, indicating that the token is inconsistent with the BundleId of the certificate used in the push. Please check if the certificate is correct and if the BundleId of the certificate is consistent with the BundleId used in client packaging.
The iOS phone cannot receive messages, but the message status is ACKED
For iOS pushes, if the message status is ACKED, it means that the message has been successfully pushed to Apple Push Notification service. Please check if the push permission is enabled and whether you have switched the app to the background.
The default mechanism for Apple is that when an app is in foreground, the messages can arrive but will be not shown. In order to show messages in foreground, you need to implement it manually.
RPC call exceptions
If an exception occurs when you call a resource through a remote procedure call (RPC) request, troubleshoot the problem with reference to Security Guard error codes or Gateway result codes.