地理围栏数据在转换时为空
Geofence Data is empty on transition
我设置了一个地理围栏,当设备离开半径时,它会按预期触发。然而,地理围栏事件完全是空的。
override fun onReceive(context: Context, intent: Intent) {
val geofencingEvent = GeofencingEvent.fromIntent(intent)
}
- geofencingEvent.geofenceTransition 是-1
- geofencingEvent.triggeringGeofences 为空
- geofencingEvent.triggeringLocation 为空
- geofencingEvent.hasError()
是假的
这并不奇怪,因为意图也是空的。但是 e geofence-trigger intent 通常从哪里获取数据以帮助 GeofencingEvent.fromIntent() 构建事件?什么可能出错,意图是空的? (没有行动,没有额外的东西......意图 uri 看起来像这样:
intent:#Intent;launchFlags=0x10;component=de.yukiarts.test/.GeofenceBroadcastReceiver;end
我发现这个 question from 7 years ago, which describes the same behavior without an answer. I followed this documentation 非常准确。知道我可能做错了什么吗?
我发现将触发地理围栏时使用的 PendingIntent 设为可变可以解决此问题!(在 Android >11 的设备上)
val geofencePendingIntent = PendingIntent.getBroadcast(
context, 0, intent,
PendingIntent.FLAG_MUTABLE or PendingIntent.FLAG_UPDATE_CURRENT
我设置了一个地理围栏,当设备离开半径时,它会按预期触发。然而,地理围栏事件完全是空的。
override fun onReceive(context: Context, intent: Intent) {
val geofencingEvent = GeofencingEvent.fromIntent(intent)
}
- geofencingEvent.geofenceTransition 是-1
- geofencingEvent.triggeringGeofences 为空
- geofencingEvent.triggeringLocation 为空
- geofencingEvent.hasError() 是假的
这并不奇怪,因为意图也是空的。但是 e geofence-trigger intent 通常从哪里获取数据以帮助 GeofencingEvent.fromIntent() 构建事件?什么可能出错,意图是空的? (没有行动,没有额外的东西......意图 uri 看起来像这样:
intent:#Intent;launchFlags=0x10;component=de.yukiarts.test/.GeofenceBroadcastReceiver;end
我发现这个 question from 7 years ago, which describes the same behavior without an answer. I followed this documentation 非常准确。知道我可能做错了什么吗?
我发现将触发地理围栏时使用的 PendingIntent 设为可变可以解决此问题!(在 Android >11 的设备上)
val geofencePendingIntent = PendingIntent.getBroadcast(
context, 0, intent,
PendingIntent.FLAG_MUTABLE or PendingIntent.FLAG_UPDATE_CURRENT