jpm*_*jpm 5 android broadcastreceiver kotlin android-geofence
我设置了一个地理围栏,当设备退出半径时,该地理围栏会按预期触发。然而,地理围栏事件完全是空的。
override fun onReceive(context: Context, intent: Intent) {
val geofencingEvent = GeofencingEvent.fromIntent(intent)
}
Run Code Online (Sandbox Code Playgroud)
这并不奇怪,因为意图也是空的。但是地理围栏触发意图通常从哪里获取数据来帮助 GeofencingEvent.fromIntent() 构建事件?如果意图是空的,会出现什么问题?(没有任何操作,没有额外的内容...意图 uri 如下所示:
intent:#Intent;launchFlags=0x10;component=de.yukiarts.test/.GeofenceBroadcastReceiver;end
Run Code Online (Sandbox Code Playgroud)
jpm*_*jpm 14
我发现使触发地理围栏时使用的 PendingIntent 可变可以修复此问题!(在 Android >11 的设备上)
val geofencePendingIntent = PendingIntent.getBroadcast(
context, 0, intent,
PendingIntent.FLAG_MUTABLE or PendingIntent.FLAG_UPDATE_CURRENT
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1027 次 |
| 最近记录: |