【问题标题】:Android - Is there a way to listen if GPS was enabled or disabledAndroid - 有没有办法监听 GPS 是否启用或禁用
【发布时间】:2011-09-22 21:05:01
【问题描述】:

我编写此代码来接收位置更新 -

PendingIntent launchIntent = PendingIntent.getBroadcast(context, 5000, intent, 0);
manager.requestLocationUpdates(selectProvider(), 0, 0, launchIntent);

如果可用,我选择 gps 提供商,否则选择网络提供商。如果稍后启用,有什么方法可以切换回 gps 吗?

启用或禁用 gps 提供程序时系统是否会广播意图?我可以设置一个监听器吗?

【问题讨论】:

  • 不是 android 开发人员,但我知道这是可能的 - 我使用的 wifi 监控应用程序(kostya vasilyev 的 wifi 管理器)可以检测 wifi 何时启用并更新其小部件与 wifi 开/关状态同步.各种 GPS 应用程序也可以检测 GPS 是否启用/禁用。
  • 不重复 - 其他问题寻找一次性检查(并激活不再可能),这个问题想要监听状态变化

标签: android gps


【解决方案1】:

您可以检测 GPS 状态是否发生变化,例如如果获取了 GPS 卫星定位。

看看GpsStatus.Listener。用locationManager.addGpsStatusListener(gpsStatusListener)注册。

【讨论】:

  • 这个现在已经被弃用了,应该使用GnssStatus来代替
  • @WahibUlHaq 你能举例说明如何使用GnssStatus吗?因为我还没有找到任何关于如何监听 gps 状态启用/禁用的最佳实践
【解决方案2】:
public void onStatusChanged(String provider, int status, Bundle extras) {
    // TODO Auto-generated method stub

}

public void onProviderEnabled(String provider) {
    Toast.makeText(this, "Enabled new provider " + provider,
            Toast.LENGTH_LONG).show();

}

public void onProviderDisabled(String provider) {
    Toast.makeText(this, "GPS disconnected", Toast.LENGTH_LONG);
        Toast.makeText(getApplicationContext(), "Connected",
                Toast.LENGTH_LONG);


    Toast.makeText(this, "Please Switch on GPS." + provider,
            Toast.LENGTH_LONG).show();
}

【讨论】:

  • 分析器不清楚。这段代码是什么?它是某个接口(什么接口)的实现吗?应该如何使用它(例如应该在哪里通过它)?
  • 我同意@luten,不清楚你在回答什么
  • 各位,这个问题早在 2011 年就已经回答过了,一定有很多新的和有效的方法来处理这种情况。
  • 对界面还一无所知的可以参考LocationListener
猜你喜欢
  • 2021-02-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-23
  • 1970-01-01
  • 1970-01-01
  • 2014-12-22
  • 2021-04-07
相关资源
最近更新 更多