GeoFencing:BroadcastReceiver 无法触发
GeoFencing: BroadcastReceiver fails to trigger
我已经尝试 运行 这个来自 android 开发者的应用程序:https://developer.android.com/codelabs/advanced-android-kotlin-training-geofencing?authuser=2#0
正在添加地理围栏,但未触发任何内容。我试过查看此页面:https://simpleinout.helpscoutdocs.com/article/232-my-geofences-arent-working-android
但是我的phone好像没问题...
当我收到“添加了地理围栏”的日志时,如何不触发广播??。我的模拟器、Intent 或 broadcastReceiver 有问题吗??
广播接收器:
class GeofenceBroadcastReceiver : BroadcastReceiver() {
override fun onReceive(context: Context, intent: Intent) {
if (intent.action == ACTION_GEOFENCE_EVENT) {
val geofencingEvent = GeofencingEvent.fromIntent(intent)
if (geofencingEvent.h
意图:
private val geofencePendingIntent: PendingIntent by lazy {
val intent = Intent(this, GeofenceBroadcastReceiver::class.java)
intent.action = ACTION_GEOFENCE_EVENT
PendingIntent.getBroadcast(this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT)
}
添加地理围栏:
addOnCompleteListener {
// Add the new geofence request with the new geofence
geofencingClient.addGeofences(geofencingRequest, geofencePendingIntent)?.run {
addOnSuccessListener {
// Geofences added.
位置 ACCESS_BACKGROUND_LOCATION 和 ACCESS_FINE_LOCATION 也“始终允许”[=15=]
终于想通了。代码没有任何内容。在模拟器上测试是行不通的(至少对我来说不行,不能通过单击设置和那样更改位置)
对我有用的是在真实设备上进行测试:
- 转到开发人员设置并启用模拟位置
- 从应用商店下载 Lockito。
- 返回开发者设置(模拟位置)并将应用设置为“lockito”。
- 在lockito中设置你想要的任何路线,然后点击播放。
我已经尝试 运行 这个来自 android 开发者的应用程序:https://developer.android.com/codelabs/advanced-android-kotlin-training-geofencing?authuser=2#0
正在添加地理围栏,但未触发任何内容。我试过查看此页面:https://simpleinout.helpscoutdocs.com/article/232-my-geofences-arent-working-android 但是我的phone好像没问题...
当我收到“添加了地理围栏”的日志时,如何不触发广播??。我的模拟器、Intent 或 broadcastReceiver 有问题吗??
广播接收器:
class GeofenceBroadcastReceiver : BroadcastReceiver() {
override fun onReceive(context: Context, intent: Intent) {
if (intent.action == ACTION_GEOFENCE_EVENT) {
val geofencingEvent = GeofencingEvent.fromIntent(intent)
if (geofencingEvent.h
意图:
private val geofencePendingIntent: PendingIntent by lazy {
val intent = Intent(this, GeofenceBroadcastReceiver::class.java)
intent.action = ACTION_GEOFENCE_EVENT
PendingIntent.getBroadcast(this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT)
}
添加地理围栏:
addOnCompleteListener {
// Add the new geofence request with the new geofence
geofencingClient.addGeofences(geofencingRequest, geofencePendingIntent)?.run {
addOnSuccessListener {
// Geofences added.
位置 ACCESS_BACKGROUND_LOCATION 和 ACCESS_FINE_LOCATION 也“始终允许”[=15=]
终于想通了。代码没有任何内容。在模拟器上测试是行不通的(至少对我来说不行,不能通过单击设置和那样更改位置)
对我有用的是在真实设备上进行测试:
- 转到开发人员设置并启用模拟位置
- 从应用商店下载 Lockito。
- 返回开发者设置(模拟位置)并将应用设置为“lockito”。
- 在lockito中设置你想要的任何路线,然后点击播放。