ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

java – Android GPS需要一段时间才能准确

2019-06-10 02:30:27  阅读:194  来源: 互联网

标签:java android gps location locationmanager


我已经制作了一个Android应用程序,可以通过点击按钮获取经度和纬度的位置.

起初我得到最后一个已知的位置读数,为了论证,当我第一次加载应用程序/打开gps时,这是不准确的.

我想知道的是如何等待它准确,比如在谷歌地图中,​​当你收到“等待位置”的祝酒消息时.

如果您看到任何方式可以改进代码,它也会有所帮助.

代码:

public class Clue extends Activity {

    public static double latitude;
    public static double longitude;
    Criteria criteria;
    LocationManager lm;
    LocationListener ll;
    Location location;

  /** Called when the activity is first created. */
  @Override
  public void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.questions);

      criteria = new Criteria();
      criteria.setAccuracy(Criteria.ACCURACY_FINE);
      lm = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
      ll = new MyLocationListener();
      lm.requestLocationUpdates(lm.getBestProvider(criteria, true), 0, 0, ll);          
}



private boolean weAreThere() {
    location = getLocation(); 
    longitude = location.getLongitude();
    latitude = location.getLatitude();

    return inCorrectPlace(param);
}

private Location getLocation() {
     lm.requestLocationUpdates(lm.getBestProvider(criteria, true), 0, 0, ll); 
      return lm.getLastKnownLocation(lm.getBestProvider(criteria, true));
}
}

    public class MyLocationListener implements LocationListener
    {
        public void onLocationChanged(Location loc)
        {        
             Clue.longitude = loc.getLongitude();
             Clue.latitude = loc.getLatitude();
        }
}

感谢阅读,所有回复将不胜感激.

解决方法:

如果Location.hasAccuracy()返回true,您可以调用Location.getAccuracy()来检索以米为单位的精度,然后过滤那些您认为不够准确的精度.

请注意,您没有使用LocationManager.GPS_PROVIDER,因此您也可以通过其他方式(如WiFi)获取修复程序.

通常期望GPS芯片在获得GPS修复(室外)之前获得“热”*大约一分钟.

*热,我的意思是有卫星报道.一段时间后,一些芯片组断开连接(“冷”)以保留电池.当芯片冷时,首次定位时间(TTFF)更大.

标签:java,android,gps,location,locationmanager
来源: https://codeday.me/bug/20190610/1208968.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有