首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android-需要在不打开GPS的情况下找到GPS信号强度。

Android-需要在不打开GPS的情况下找到GPS信号强度。
EN

Stack Overflow用户
提问于 2012-07-17 02:10:32
回答 1查看 2.5K关注 0票数 2

我的应用程序应该使用GPSCellular networkWiFi.I查找当前位置,通过GPS可以轻松地找到当前位置。

代码语言:javascript
复制
LocationManager locationmanager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
LocationListener locationlistener = new mylocationlistener();
locationmanager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, locationlistener);

其中mylocationlistener()函数如下所示

代码语言:javascript
复制
private class mylocationlistener implements LocationListener {
  @Override
  public void onLocationChanged(Location location) {
      if (location != null) {
      Toast.makeText(LocationActivity.this,"latitude: "+
          location.getLatitude() + "longitude: " + location.getLongitude(),
          Toast.LENGTH_LONG).show();
      }
  }

它正常工作,我可以通过上面的代码找到当前的位置,我需要更改locationmanager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, locationlistener);

没关系,但我的挑战是

  1. 我需要找到全球定位系统的信号强度,以激活GPS.If,全球定位系统信号强度很差,那么我不能激活全球定位系统,因为它会耗尽电池。
  2. 如果全球定位系统信号差,我必须通过蜂窝网络或WiFi来找出当前的位置。

所以,我的问题是,如果有任何方法来确定全球定位系统的信号强度,而不打开GPS?谢谢您的任何帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-07-17 02:13:47

不,无法确定没有打开的传感器的信号强度。

为了确定卫星和全球定位系统(如电话)之间信号的强度,两者都需要发送和接收GPS信号,这自然要求手机上的GPS被打开。

同样的逻辑是,如果不打开WiFi,就不能列出附近可用的WiFi网络。

您最好的选择是简单地打开它,如果您决定不使用它,则关闭它。

确定是否使用GPS的最简单方法是打开它,然后使用LocationManager的getBestProvider方法。如果最好的供应商不是GPS,那么再次关闭它。您还可以使用getGpsStatus方法获得一个GpsStatus对象,其指标包括卫星的最大数量和接收修复所需的时间。

有关如何启用/禁用全球定位系统,请参见像Tasker这样以编程方式启用GPS。可悲的是,你只能在2.3前的手机上以编程方式这样做,然后才能利用它。“正确”的方法是提示用户启用或禁用它。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11515150

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档