我正在尝试使用Androids感知API在多个会话中注册多个位置围栏。但每次我注册一个新的位置围栏时,它似乎都会丢弃我的旧位置围栏而不再触发它们。
String uniqueId = UUID.getid().toString() // sample to indicate this is always
unique
AwarenessFence geoFence = LocationFence.in(lat, long, radius);
Awareness.FenceApi.updateFences(
googleApiClient,
new FenceUpdateRequest.Builder()
.addFence(uniqueId, geoFence, pendingIntent)
.build())
.setResultCallback(new ResultCallback () { .....});
我的待定意图:
Intent intent = new Intent(GeoBroadcastReceiver.BROADCAST_KEY);
Bundle bundle;
bundle = new Bundle();
bundle.putSerializable("model", model);
intent.putExtra("specialBundle", bundle);
PendingIntent geoBroadCastPendingIntent = PendingIntent.getBroadcast(context.getApplicationContext(), 0, intent, PendingIntent.FLAG_CANCEL_CURRENT);
文档说这是如何添加围栏,但我不知道我需要保留 跟踪我的旧围栏,随时随地使用
Awareness.FenceApi.updateFences
,我需要每次添加它们吗?
答案 0 :(得分:0)
您可能需要检查围栏密钥。
如Register a fence中所述,注册围栏需要以下内容:
AwarenessFence
实例(围栏本身)。PendingIntent
。AwarenessFence
/ PendingIntent
对)。另请注意,如果您使用已注册的围栏密钥呼叫addFence()
,则会覆盖该密钥的AwarenessFence
和PendingIntent
值。
希望有所帮助!