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, я не проверял его. Если вы решили, то скажите мне.

Другие вопросы по тегам