android – onLocationChanged只调用一次,而不是刷新

android – onLocationChanged只调用一次,而不是刷新,第1张

概述我做了一个小gps应用程序由于某种原因onLocationChanged没有刷新,它只在app启动时运行一次. 这是我的代码: public BackgroundLocationService() { super("myintentservice"); locManager = (LocationManager) context.getSystemService( 我做了一个小gps应用程序由于某种原因onLocationChanged没有刷新,它只在app启动时运行一次.

这是我的代码:

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只调用一次,而不是刷新所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1128792.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存