我正在开发一个使用 Google 推送通知的应用程序。该应用程序在小米手机中运行时会收到通知。否则,当它被杀死时,它不会收到通知。
如果我们想在应用程序被终止时收到通知,那么我们需要从小米的安全应用程序手动允许自动重启应用程序。我想要任何技巧来以编程方式执行此操作,而无需询问用户。有办法做到这一点吗?
来自 https://www.cricketbuddies.com/cricket/world-cricket-championship-2/guides/wcc2-guides,“游戏通知修复”部分:
有五项设置需要手动完成,以防出现以下情况: xiaomi 正确运行任何应用程序。我做了很多研究 对此,无法以编程方式修复这些设置。 这些是设置:
- 自动启动 -> 打开(切换并重新启动您的应用程序)
- 开发者选项下的MIUI优化->关闭
- 开发者选项下的内存优化 -> 低/关
- 电池和性能设置下对后台活动没有限制
- 省电模式 -> 关闭
还有很多其他设备需要手动设置 完成以便应用程序按预期工作,例如联想、一些 微型最大设备。公司施加此类限制 后台活动可提高整体电池寿命。一些应用程序 像 Facebook 和 Whatsapp 一样可以正常工作 包含为系统应用程序。
MIUI 6 & 7 之后:
MIUI省电模式默认设置为“标准”(后台访问位置服务和网络将受到限制)
设置地点:
设置 -> 其他设置 -> 电池和性能 -> 管理应用程序电池使用情况 -> 省电模式 -> 设置为关闭(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);
}
}
}
它应该适用于这个。