Infinix Note 5 (Android One-Oreo) и Oppo F9 (Oreo) не получают
Push-уведомление, если приложение убито, они работают нормально, если приложение в
фон или передний план.
китайские ПЗУ, использующие (Oxygen OS, MIUI и т. Д.), Когда приложения перелистываются из недавнего трея приложений, ваше приложение закрывается (аналогично Force Stop). И из-за этого все задачи, выполняющиеся в фоновом режиме, такие как службы, убивают Джобса с приложением. Даже высокоприоритетный FCM не видит дневного света в китайских ПЗУ
Проблемы в реальном времени:
1) Вы не можете получить местоположение пользователя. Таким образом, ни одно приложение не будет работать должным образом, если оно зависит от местоположения в реальном времени
2) Вы не можете получать уведомления с высоким приоритетом FCM
3) Задание / задание, не зависящее от времени, не будет выполнено, если приложение не будет отображаться в трее и многое другое ...
Решение
пользователю необходимо включить автоматический запуск в настройках приложения, чтобы фоновая служба / задание работали. По умолчанию оно отключено. Для этого на некоторых устройствах, которые мы можем использовать,
Пример кода
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
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) {
startActivity(intent);
}
}
}
ИСТОЧНИК: https://stackoverflow.com/questions/52849445/some-oreo-devices-are-not-getting-push-notification/52943903#52943903