【问题标题】:get coordinates without gps (android)在没有 GPS 的情况下获取坐标(android)
【发布时间】:2017-03-01 16:36:05
【问题描述】:

我正在开发一个安卓应用程序,我想从智能手机接收坐标。两个问题:

1: GPS 开启了,但是没有信号,所以我没有坐标。如何检查 GPS 是否正在发送坐标?

2:如果启用了 GPS 并且没有信号,我可以使用其他哪种方法从智能手机获取坐标?

【问题讨论】:

    标签: android mobile gps


    【解决方案1】:

    获取坐标需要使用定位服务,默认情况下,定位服务使用各种方式来确定位置,不仅是 GPS,还包括蜂窝信号。这是一个tutorial 在 Android 中使用定位服务。

    忠告 - 如果您打算使用 GPS 并通常分发您的应用程序,请知道 GPS 服务非常耗电。它需要明智的编码才能不耗尽用户的电池。您已被警告!

    【讨论】:

    • 您的教程展示了如何使用 GPS,但如果我没有从 GPS 获得坐标,我如何获得坐标?
    • @Sebastian 本教程确实涵盖了所有服务 - 特别是在教程中查找 LocationManager.NETWORK_PROVIDER。该特定代码位使用蜂窝网络来确定位置。它不如 GPS 准确,但很接近。
    • 请注意,如果您使用的是仅 Wi-Fi 设备,那么您必须订阅第三方服务才能实现您的目标。如果您没有 GPS,则位置确定需要知道您相对于固定已知位置的位置。移动网络知道他们的塔在哪里。如果您不使用这两者之一,那么您将需要拥有这些固定位置的另一方。
    • 我已经测试了你的教程,但是我得到了这个错误:java.lang.InstantiationException: can't instantiate class xxx.LocActivity;没有空的构造函数
    • 好的,但我会提出一个新问题
    【解决方案2】:

    1) 使用 locationService 获取设备坐标。

    mContext = getActivity();
    mLocationManager = (LocationManager)  mContext.getSystemService(Application.LOCATION_SERVICE);
    mLocationManager.requestLocationUpdates(mProvider, 60000, 100, mAttLocationListener);
    boolean gpsEnabled = mLocationManager.isProviderEnabled(mProvider);
    

    2) 您仍然可以使用隐藏在 wi-fi 中的位置信息进行粗略估计

    【讨论】:

      猜你喜欢
      • 2023-03-22
      • 1970-01-01
      • 2013-09-11
      • 1970-01-01
      • 2018-08-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-09
      相关资源
      最近更新 更多