2015-06-10 4 views
30

Ich arbeite an einer Anwendung, in der ich Google Push Notification verwende. Die Anwendung erhält eine Benachrichtigung, wenn sie im Xiaomi-Telefon ausgeführt wird, andernfalls wird sie beim Beenden nicht benachrichtigt.Xiaomi erhält keine Benachrichtigung, wenn die Anwendung nicht ausgeführt wird

Wenn wir benachrichtigt werden möchten, wenn die Anwendung beendet wird, dann müssen wir den automatischen Neustart der App manuell aus der Sicherheits-App von xiaomi erlauben. Ich möchte jeden Trick programmgesteuert durchführen, ohne den Benutzer zu fragen. Gibt es eine Möglichkeit, dies zu tun?

enter image description here

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

+0

Es funktioniert ordnungsgemäß in Geräten anderer Anbieter. "Was hast du schon probiert?" - Ich habe nur auf stackoverflow und angehängten Link geschaut, aber keine Lösung gefunden. Wenn Sie eine Lösung haben, teilen Sie diese bitte mit, ansonsten macht das Schreiben keinen Sinn. Ich glaube nicht, dass es sich um eine dupe Frage handelt. –

+0

Haben Sie Google Framework auf Ihrem Telefon? – Mine

+1

@Williams Ich dachte, deine Frage wäre folgende: "Ich möchte jeden Trick programmgesteuert ausführen, ohne den Benutzer zu fragen. Gibt es eine Möglichkeit, dies zu tun?" für die meine Aussage gültig ist. –

Antwort

2

Was mein Verständnis, wenn Sie klare Anwendungen oder Speicher löschen in der letzten Anwendungen Menü xiaomi (oder MIUI-Rom) wird Kraft schließen alle Dienste und Speicher zu dieser App im Zusammenhang ähnlich wie Benutzer zu Einstellungen gehen und zwingen, App zu stoppen,

This Link spricht über das gleiche Problem, damit alle Broadcast-Empfänger und Dienste beendet werden, wenn sie vom Benutzer erneut gestartet werden, so die notificati auf gewohnt empfangen werden,

Allerdings können Sie versuchen, nur ermöglicht für Ihre App-Berechtigungen in den Einstellungen automatisch starten und wenn es immer noch versuchen nicht funktioniert Service zu schaffen, die von sich selbst neu startet und ermöglichen in der Auto-Start Einstellungen, ist Autostart sehr wichtig in MIUI, soweit nicht seine aktivierten alle die Benachrichtigung oder App-Aktivität wird Kraft geschlossen und wird nie

+0

Wie erstellt man einen Dienst, der von selbst neu startet? – Manikanta

+1

Sie können es auf viele Arten tun, zuerst versuchen Sie die START_STICKY, so versucht es, Service wiederherzustellen, wenn es vom System beendet wird, oder nur OnDestroy des Dienstes zu hören und versuchen, wieder zu starten – Ujju

+0

@Manikanta hat es für Sie funktioniert? –

6

nach MIUI 6 & 7 starten:

MIUI Energiesparmodus standardmäßig eingestellt ist " Standard "(Hintergrundzugang zum Standort tion Service und das Netz beschränkt werden)

Wo setzen:

Einstellungen -> Erweiterte Einstellungen -> Batterie & Leistung -> Anwendungen verwalten Batterieverbrauch -> Stromsparmodi ->Set Off (MIUI wird keine Hintergrundaktivitäten einschränken)

5

Es gibt fünf Einstellungen, die manuell vorgenommen werden müssen, damit xiaomi eine Anwendung ordnungsgemäß ausführen kann. Ich habe viel darüber recherchiert und es gibt keine Möglichkeit, diese Einstellungen programmgesteuert zu beheben. Dies sind die Einstellungen:

  1. Auto Start -> ON (Toggle und starten Sie Ihre app)
  2. MIUI Optimierung unter Entwickleroptionen -> OFF
  3. Speicheroptimierung unter Entwickleroptionen -> LOW/OFF
  4. keine Beschränkungen für Hintergrundaktivitäten unter Battery & Leistungseinstellungen
  5. Battery Saver -> OFF

Es gibt viele andere Geräte, bei denen die manuellen Einstellungen vorgenommen werden müssen, damit die App wie erwartet funktioniert, z. Lenovo, einige Micromax-Geräte. Unternehmen auferlegen diese Art von Beschränkungen auf Hintergrundaktivitäten, um die Gesamtdauer der Batterie zu verbessern. Einige Apps wie Facebook und WhatsApp funktionieren korrekt, da diese möglicherweise als System-Apps enthalten sind.

0

Ich sah sich einem ähnlichen Problem gegenüber und behob es, indem ich einen BOOT_COMPLETED-Empfänger zu meiner App hinzufügte.

In manifestieren folgende:

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

dann Ihre BootReceiver Klasse erstellen

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); 
     } 
    } 
} 

Es sollte mit dieser Arbeit.

+0

funktioniert es in MI-Geräten? @Nikhil –

+0

Wie funktioniert das auf Hybrid-Apps - z. mit Cordova? \ – Rodney

+0

@Rodney könnten Sie versuchen, ein natives Cordova-Plugin schreiben? nur eine Idee. –