java - 获取位置安卓?

标签 java android database performance optimization

我想在一小段时间内每秒接收位置更新,所以我编写了以下代码:

     public void registerListener() {

            if (ActivityCompat.checkSelfPermission(c, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(c, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
            } else {
                lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1000, 10, locationListener);
            }
        }
        private final LocationListener locationListener = new LocationListener() {
            public void onLocationChanged(Location location) {

                 longitude = location.getLongitude();
                 latitude = location.getLatitude();

                Log.v(TAG, ""+longitude + "                       " +latitude);

            }
@Override
        public void onStatusChanged(String provider, int status, Bundle extras) {} 
        @Override
        public void onProviderEnabled(String provider) {} 
        @Override
        public void onProviderDisabled(String provider) {}
    };

我从其他地方调用registerListener()。问题是,我的位置更新只被调用一次,而且我只得到该日志一次。此外,日志仅在调用 registerListener 之后大约 5-10 秒出现。

速度缓慢的原因是什么?位置为何没有更新?

谢谢

鲁奇

最佳答案

您正在请求 GPS 位置。第一次获得卫星锁定需要几秒钟的时间。如果您无法接收信号锁定(在某些建筑物的室内,地下太远,对手机造成物理损坏,例如天线松动(在早期三星中常见)),则可能永远不会发生。

至于不再收到,除非移动至少10米,否则不会再次收到。将其更改为 0 并看到它每秒出现一次。

关于java - 获取位置安卓?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36231444/

相关文章:

java - 在Android中显示GCM消息

Android:是否可以缩放 xml 可绘制对象?

sql - 数据库死锁是生活中的事实吗?

android - 仅从最近的堆栈中排除一项 Activity

android - 如何在 Android Studio 中设置 FirebaseAdapter?

php - 如何在MySQL中创建每个产品都在多个类别下的产品表?

mysql - SQL:创建多个外键和约束

java - 在 Java 中分配最终字段

java - 运行 jerseyTest 时出现 filenotfoundException - 缺少 applicationContext.xml

java 将 GB、Mb、KB 和字节精确转换为 double