我正在使用前台服务来跟踪用户的实时位置。它在股票Android设备上工作正常,但在像oppo,vivo,Mi等品牌,当设备进入打盹模式时,应用程序被杀死。我还尝试使用FCM通知仍然没用。我只是想知道Uber或Ola是否能够破解这一点,我见过大多数司机都在使用这些品牌。如何在打盹模式下保持他们的应用程序活着?
你需要为oppo,vivo和mi中的应用启用自动启动权限
尝试以下代码为我工作
private void keepServicesInChineseDevices() {
Intent intent = new Intent();
String manufacturer = android.os.Build.MANUFACTURER;
switch (manufacturer) {
case "xiaomi":
intent.setComponent(new ComponentName("com.miui.securitycenter",
"com.miui.permcenter.autostart.AutoStartManagementActivity"));
break;
case "oppo":
intent.setComponent(new ComponentName("com.coloros.safecenter",
"com.coloros.safecenter.permission.startup.StartupAppListActivity"));
break;
case "vivo":
intent.setComponent(new ComponentName("com.vivo.permissionmanager",
"com.vivo.permissionmanager.activity.BgStartUpManagerActivity"));
break;
}
List<ResolveInfo> arrayList = getPackageManager().queryIntentActivities(intent,
PackageManager.MATCH_DEFAULT_ONLY);
if (arrayList.size() > 0) {
AppDataHolder.getSession(MyApplication.getAppContext()).setPermissionForChineseDevices(true);
startActivity(intent);
}
}
非常感谢你们,感谢您的回复。我想告诉你,我写了一封谷歌支持的电子邮件,并强调了谷歌支持的问题,他们在回复中提到回复:“谢谢你伸出援手。
您似乎无法在某些Android设备上收到推送通知。在检查受影响的设备时,它受设备特定(已知)问题的影响,并且由OEM功能引起的电池优化。当应用程序被刷掉时,在已经实现了这种功能的一些OEM中,应用程序被视为类似于“强制停止”机制,并且已经停止了刷新的应用程序注册的服务。
目前,我强烈建议您联系受影响的OEM厂商的支持团队,以帮助他们从最终解决问题。您可以在此博客文章(https://www.freecodecamp.org/news/why-your-push-notifications-never-see-the-light-of-day-3fa297520793/)中阅读有关此问题的更多信息以及解决此问题的可能方法。