我有一个在后台运行的定位应用程序。为了管理所有这些,我使用定期警报来激活本地化过程。问题是,由于 SAMSUNG的最新更新 已停止在这些设备上运行。当设备锁定时,这些警报将停止工作。只需再次激活屏幕,一切就可以正常工作。我尝试了几种管理警报的方法,最近的测试已使用 setExactAndAllowWhileIdle 方法
完成但是结果是一样的。在装有Android 8.0的 Samsung设备上 ,我会发生这种情况。
任何帮助或建议都将受到欢迎。
提前谢谢
答案 0 :(得分:2)
使用广播接收器获取8.0版中的位置...我已经测试过它对我有用
private PendingIntent getPendingIntent() {
// Note: for apps targeting API level 25 ("Nougat") or lower, either
// PendingIntent.getService() or PendingIntent.getBroadcast() may be used when requesting
// location updates. For apps targeting API level O, only
// PendingIntent.getBroadcast() should be used. This is due to the limits placed on services
// started in the background in "O".
// TODO(developer): uncomment to use PendingIntent.getService().
// Intent intent = new Intent(this, LocationUpdatesIntentService.class);
// intent.setAction(LocationUpdatesIntentService.ACTION_PROCESS_UPDATES);
// return PendingIntent.getService(this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
Intent intent = new Intent(this, LocationUpdatesBroadcastReceiver.class);
intent.setAction(LocationUpdatesBroadcastReceiver.ACTION_PROCESS_UPDATES);
return PendingIntent.getBroadcast(this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
}
注意:出于安全原因,某些设备无法像OPPO,Vivo一样工作。在这种情况下,您必须转到
Security permissions
->autostart
->然后从那里启用自动启动。