[英]Android | Is it possible to receive a push notification when running test against your application
[英]Xiaomi does not receive notification when application is not running
我正在開發一個使用 Google 推送通知的應用程序。 應用程序在小米手機中運行時會收到通知,否則當它被殺死時不會收到通知。
如果我們想在應用程序被殺死時收到通知,那么我們需要允許從小米的安全應用程序中手動自動重啟應用程序。 我想要任何技巧以編程方式執行此操作而無需詢問用戶。 有沒有辦法做到這一點?
如果小米要正確運行任何應用程序,需要手動完成五項設置。 我對此進行了大量研究,但無法以編程方式修復這些設置。 這些是設置:
還有許多其他設備需要手動設置才能使應用程序按預期工作,例如聯想、一些 Micromax 設備。 公司對后台活動施加此類限制,以提高整體電池壽命。 facebook 和 whatsapp 等一些應用程序可以正常工作,因為這些應用程序可能已作為系統應用程序包含在內。
MIUI 6 & 7 之后:
MIUI省電模式默認設置為“標准”(后台訪問定位服務和網絡將被限制)
在哪里設置:
設置 -> 其他設置 -> 電池和性能 -> 管理應用程序電池使用 -> 省電模式 ->設置為關閉(MIUI 不會限制后台活動)
至於我的理解,一旦您在最近的應用程序菜單中清除應用程序或清除內存,小米(或 MIUI rom)將強制關閉與該應用程序相關的所有服務和內存,類似於用戶進入設置並強制停止應用程序,
該鏈接討論了相同的問題,因此除非用戶再次啟動,否則所有廣播接收器和服務都將結束,因此不會收到通知,
但是,您可以嘗試在設置中為您的應用程序權限啟用自動啟動,如果仍然不起作用,請嘗試創建自行重啟的服務並在設置中啟用自動啟動,自動啟動在 MIUI 中非常重要,直到它全部啟用通知或應用活動將被強制關閉並且永遠不會啟動
我遇到了類似的問題,並通過在我的應用程序中添加一個 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);
}
}
}
它應該適用於此。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.