为了账号安全,请及时绑定邮箱和手机立即绑定

如何检查GPS接收机的当前状态?

如何检查GPS接收机的当前状态?

慕侠2389804 2019-07-03 14:09:29
如何检查GPS接收机的当前状态?如何检查GPS接收机的当前状态?我已经查过了LocationListener onStatusChanged方法,但不知何故,它似乎不起作用,或只是错误的可能性。基本上,我只需要知道,在屏幕顶部的GPS图标是闪烁(没有实际的修复)或固体(修复是可用的)。
查看完整描述

3 回答

?
宝慕林4294392

TA贡献2021条经验 获得超8个赞

根据接收到的广播意图,GPS图标似乎改变了它的状态。您可以使用以下代码示例自行更改其状态:

通知已启用全球定位系统:

Intent intent = new Intent("android.location.GPS_ENABLED_CHANGE");intent.putExtra("enabled", true);sendBroadcast(intent);

通知GPS正在接收修补程序:

Intent intent = new Intent("android.location.GPS_FIX_CHANGE");intent.putExtra("enabled", true);sendBroadcast(intent);

通知GPS不再接收修补程序:

Intent intent = new Intent("android.location.GPS_FIX_CHANGE");intent.putExtra("enabled", false);sendBroadcast(intent);

通知GPS已被禁用:

Intent intent = new Intent("android.location.GPS_ENABLED_CHANGE");intent.putExtra("enabled", false);sendBroadcast(intent);

将接收方注册到意图的示例代码:

// MyReceiver must extend BroadcastReceiverMyReceiver receiver = new MyReceiver();
IntentFilter filter = new IntentFilter("android.location.GPS_ENABLED_CHANGE");
filter.addAction("android.location.GPS_FIX_CHANGE");registerReceiver(receiver, filter);

通过接收这些广播意图,您可以注意到GPS状态的变化。但是,只有当状态发生变化时,才会通知您。因此,无法使用这些意图来确定当前状态。


查看完整回答
反对 回复 2019-07-03
?
森栏

TA贡献1810条经验 获得超5个赞

不幸的是,新成员我无法发表评论或投票,然而StephenDaye上面的帖子是我一直在寻求帮助的完全相同问题的完美解决方案。

对以下一行的小改动:

isGPSFix = (SystemClock.elapsedRealtime() - mLastLocationMillis) < 3000;

致:

isGPSFix = (SystemClock.elapsedRealtime() - mLastLocationMillis) < (GPS_UPDATE_INTERVAL * 2);

基本上,当我建立一个慢节奏的游戏,我的更新间隔已经设置为5秒,一旦GPS信号发出10秒以上,这是正确的时间触发一些东西。

干杯朋友,在我找到你的帖子之前,花了大约10个小时来解决这个问题:)


查看完整回答
反对 回复 2019-07-03
  • 3 回答
  • 0 关注
  • 578 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信