Android Geofence的学习(一)翻译官方文档

官方文档地址: https://developer.android.com/reference/com/google/android/gms/location/Geofence.html

public interface

Geofence

com.google.android.gms.location.Geofence

ClassOverview


用于表示一个地理区域,被称为地理围栏。地理围栏可以被地理围栏服务监控。当用户通过地理围栏的边界时,会产生一个警报。

Summary


Nested Classes

class

Geofence.Builder

构建一个Geofence的builder

 

Constants

int

GEOFENCE_TRANSITION_ENTER

过度类型,表示用户进入地理围栏

 

int

GEOFENCE_TRANSITION_EXIT

过渡类型,表示用户离开地理围栏

 

long

NEVER_EXPIRE

地理围栏的过期值,该值表示永不过期

 

PublicMethods

abstract String

getRequestId ()

返回该地理围栏的请求ID

 

Constants


public static final int GEOFENCE_TRANSITION_ENTER

过度类型,表示用户进入地理围栏。

ConstantValue: 1 (0x00000001)

public static final int GEOFENCE_TRANSITION_EXIT

过度类型,表示用户离开地理围栏。

ConstantValue: 2 (0x00000002)

public static final long NEVER_EXPIRE

过期标志,表示地理围栏永不过期

ConstantValue: -1 (0xffffffffffffffff)

PublicMethods


public abstract String getRequestId ()

返回地理围栏的请求ID。请求ID是一个用于在您的APP中识别Geofence的标志. 当监控两个具有相同ID的Geofence时会用心的替换旧的,无论它们所表示的地理区域。



  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
`java.lang.IllegalArgumentException: Geofence 22 not registered` 是一个运行时异常,通常在Java应用中与Google Play Services的Geofencing API相关。这个错误表明系统在尝试管理一个地理围栏Geofence)时遇到了问题,具体来说,它指的是编号为22的地理围栏没有被正确注册。 Geofencing API在Android中用于实现基于位置的服务,比如当设备进入或离开特定区域时触发某些操作。当你试图调用与这个未注册的地理围栏相关的方法,如`addGeofence()` 或 `removeGeofence()`,系统会抛出这个异常,因为系统找不到与该ID关联的地理围栏配置。 可能的原因包括: 1. 你可能忘记在注册地理围栏之前调用了`addGeofence()`,或者在添加后没有正确保存或者重新注册该围栏。 2. 该地理围栏可能已经从后台清理,例如用户手动从Google地图服务中删除了它,或者系统因资源限制自动移除了。 3. 地理围栏的注册可能存在延迟,特别是如果你在应用程序启动时立即尝试添加围栏,而那时Google服务可能还未完全初始化。 要解决这个问题,你需要检查以下步骤: - 确保在调用`addGeofence()`之前已经正确初始化了Google Play Services。 - 重试添加地理围栏,确保在添加后调用`registerGeofence()`以注册围栏。 - 检查是否正确处理了围栏的生命周期管理,比如在设备进入后台或者重启后重新添加。 - 如果是应用导致的围栏移除,确保你的代码正确地删除围栏,并且在删除后正确更新状态。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值