2015-06-10 1 views
30

Я работаю над приложением, в котором я использую Google Push Notification. Приложение получает уведомление, когда оно запущено на Xiaomi-телефоне, иначе, когда оно будет убито, оно не получит уведомление.Xiaomi не получает уведомление, когда приложение не работает

Если мы хотим получать уведомление, если приложение было убито, мы должны разрешить автоматическое перезапуск приложения вручную из приложения безопасности xiaomi. Я хочу любой трюк сделать это программно, не спрашивая пользователя. Есть какой-либо способ сделать это ?

enter image description here

http://en.miui.com/thread-33826-1-1.html

+0

Он работает правильно в других устройствах-поставщиках. «Что ты еще пробовал?» - Я только посмотрел на stackoverflow и прикрепленную ссылку, но не нашел никакого решения. Если у вас есть решение, то, пожалуйста, поделитесь, иначе написать такой комментарий не имеет смысла. Я не думаю, что это вопрос с вопросом –

+0

У вас есть Google Framework на вашем телефоне? – Mine

+1

@Williams Я думал, что ваш вопрос таков: «Я хочу любой трюк сделать это программно, не спрашивая пользователя. Есть ли способ сделать это?» для которого мое заявление действительно. –

ответ

2

Что касается моего понимания, как только Вы очищаете приложение или очистить память в Recent меню Приложения, Xiaomi (или MIUI ROM) будет сила близко все услуги и память, связанные с этим приложением подобно тому, как пользователь переходит в настройки и принудительно останавливает приложение,

This Link говорит об одной и той же проблеме, поэтому все приемники и службы широковещательной передачи будут завершены, если только пользователь не запустит его снова, поэтому уведомление по обыкновению будут получены,

Однако вы можете попробовать только что позволяет автоматический запуск для ваших разрешений приложения в настройках и если она по-прежнему не работает, попробуйте создать сервис, который перезапускает сам по себе и позволить автоматический запуск в настройки, АвтоСтарт очень важно в MIUI, до тех пор пока его активировали все уведомления или приложение деятельность будет сила закрыта и никогда не начнут

+0

Как создать сервис, который перезапускается сам по себе? – Manikanta

+1

Вы можете сделать это разными способами, сначала попробуйте START_STICKY, поэтому он пытается воссоздать сервис, если он закончился системой, или просто послушать onDestroy of service и попытаться начать снова – Ujju

+0

@Manikanta это сработало для вас? –

6

После MIUI 6 & 7:

режим энергосбережения MIUI по умолчанию установлено значение " Стандарт "(фоновый доступ к loca Тион услуги и сеть будет ограничена)

Где установить:

Настройки -> Дополнительные параметры -> Battery & производительность -> Управление приложениями использование батареи -> режимов энергосбережения ->установлено значение Выкл (MIUI не будет ограничивать фоновые действия)

5

Существует пять настроек, которые необходимо выполнить вручную в случае, если xiaomi правильно запускает любое приложение. Я провел много исследований по этому вопросу, и нет никакого способа исправить эти настройки программным путем. Эти настройки:

  1. Auto Start -> ON (Toggle и перезапустите приложение)
  2. MIUI Оптимизация под Параметры разработчика -> OFF
  3. Оптимизация памяти в разделе Параметры разработчика -> LOW/OFF
  4. нет ограничений на фоне деятельности под батареи & Настройки производительности
  5. Battery Saver -> OFF

Существует множество других устройств, в которых необходимо выполнить ручные настройки, чтобы приложение работало, как ожидалось, например. Lenovo, некоторые устройства Micromax. Компании налагают такие ограничения на ограничения фоновой деятельности, чтобы улучшить общее время автономной работы. Некоторые приложения, такие как facebook и whatsapp, работают правильно, поскольку они могут быть включены в качестве системных приложений.

0

Я столкнулся с аналогичной проблемой и исправил ее, добавив в приложение приложение BOOT_COMPLETED.

Добавить следующие манифестировать:

<receiver 
    android:name=".receivers.BootReceiver" 
    android:enabled="true"> 
    <intent-filter> 
     <action android:name="android.intent.action.BOOT_COMPLETED" /> 
    </intent-filter> 
</receiver> 

Затем создать свой BootReceiver класс

public class BootReceiver extends BroadcastReceiver { 

    @Override 
    public void onReceive(Context context, Intent intent) { 
     if (intent.getAction().equals("android.intent.action.BOOT_COMPLETED")) { 

      Intent startServiceIntent = new Intent(context, FBTokenService.class); 
      context.startService(startServiceIntent); 

      Intent notificationServiceIntent = new Intent(context, FBNotificationService.class); 
      context.startService(notificationServiceIntent); 
     } 
    } 
} 

Он должен работать с этим.

+0

работает ли он в устройствах MI? @Nikhil –

+0

Как это работает в гибридных приложениях - например, с Кордорой? \ – Rodney

+0

@ Родни можно попробовать написать родной плагин cordova? просто идея. –

Смежные вопросы