这是我的代码:
public BackgroundLocationService() { super("myintentservice"); locManager = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE); Criteria crt = new Criteria(); crt.setAccuracy(Criteria.ACCURACY_FINE); String bestProvIDer = locManager.getBestProvIDer(crt,true); boolean gps_enabled; boolean network_enabled; boolean best_enabled; gps_enabled = locManager.isProvIDerEnabled(LocationManager.GPS_PROVIDER); network_enabled = locManager.isProvIDerEnabled(LocationManager.NETWORK_PROVIDER); best_enabled = locManager.isProvIDerEnabled(bestProvIDer); if (best_enabled) { locManager.requestLocationUpdates(bestProvIDer,15000,20,locListener); Log.i(TAG,"Best enabled: " + bestProvIDer); } else { Log.i("Location ProvIDer: ","best not enabled: " + bestProvIDer); if (gps_enabled) { locManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,locListener); Log.i(TAG,"gps enabled!"); } if (network_enabled) { locManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER,"network enabled!"); } } } class MyLocationListener implements LocationListener { public voID onLocationChanged(Location location) { if (location != null) { //locManager.removeUpdates(locListener); longitude = Double.toString(location.getLongitude()); latitude = Double.toString(location.getLatitude()); Log.i(TAG,"Location has CHANGED!"); } } public voID onProvIDerDisabled(String arg) {} public voID onProvIDerEnabled(String arg) {} public voID onStatusChanged(String provIDer,int status,Bundle extras) {} }
“地点已经改变了!”消息仅在每个应用启动时显示一次.
我在办公室,但我可以移动至少5-10米远离我的位置,所有提供商都启用,所以它一定是好的,不是吗?
有任何想法吗 ?
解决方法 注册位置监听器时,您要求的最新时间为15秒,最小距离为20米.由于你在办公室内,你不太可能获得足够准确的GPS定位来实际检测到5-10米的移动.你有没有试过外面调试?同样,如果您启用了模拟位置,请将模拟坐标发送到模拟器,以确保您的应用在更新位置时按预期运行. 总结以上是内存溢出为你收集整理的android – onLocationChanged只调用一次,而不是刷新全部内容,希望文章能够帮你解决android – onLocationChanged只调用一次,而不是刷新所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)