Push-уведомления GCM для устройств Android не работают на мобильных устройствах MI и Letv
Мы сталкиваемся с проблемой при отправке push-уведомлений GCM на все устройства Android. Мы разрабатываем приложение на платформе Ionic и используем плагин Cordova push для push-уведомлений. Устройство регистрируется с помощью gcm и получает токен устройства. Я использую 3 устройства для тестирования Moto G4 Plus, MI4 и Letv.
Проблема в том, что push-уведомление достигает устройства moto g4 plus, но не устройств MI и Letv, когда приложение убито. Устройства MI и Letv также получают уведомление только тогда, когда приложение находится на переднем плане или в фоновом режиме.
Я получаю квитанции о доставке от gcm как доставленные на все устройства в случае с приложением.
Пожалуйста, предложите какое-то решение для преодоления этой проблемы. Спасибо.
1 ответ
Я также столкнулся с этой проблемой. У меня есть мобильное устройство Xiaomi, которому для получения уведомления FCM при закрытии приложения требуется разрешение "Автозапуск". Вам необходимо переместить свое приложение в этот список.
Для устройства Xiaomi вы можете запросить у пользователя это разрешение. Проверьте ответ здесь.
String xiaomi = "Xiaomi";
final String CALC_PACKAGE_NAME = "com.miui.securitycenter";
final String CALC_PACKAGE_ACITIVITY = "com.miui.permcenter.autostart.AutoStartManagementActivity";
if (deviceManufacturer.equalsIgnoreCase(xiaomi)) {
DisplayUtils.showDialog(activity, "Ask for permission", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
try {
Intent intent = new Intent();
intent.setComponent(new ComponentName(CALC_PACKAGE_NAME, CALC_PACKAGE_ACITIVITY));
activity.startActivity(intent);
} catch (ActivityNotFoundException e) {
Logger.e(TAG, "Failed to launch AutoStart Screen ", e);
} catch (Exception e) {
Logger.e(TAG, "Failed to launch AutoStart Screen ", e);
}
}
}, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
}
});
}
А что касается мобильного Letv, я не проверял его. Если вы решили, то скажите мне.