java - 安卓(Java): Getting GPS location accuracy

标签 java android gps

如何在 Android 中使用 getAccuracy() 记录以米为单位的 GPS 精度? 以下是我的代码。当我运行它时,出现构建错误。我在 getAccuracy() 方法中添加,但奇怪的是它返回错误。

package com.example.yires.locationdemo;

import android.Manifest;
import android.accounts.AccountAuthenticatorResponse;
import android.content.Context;
import android.content.pm.PackageManager;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.support.annotation.NonNull;
import android.support.v4.app.ActivityCompat;
import android.support.v4.content.ContextCompat;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;

public class MainActivity extends AppCompatActivity {

    LocationManager locationManager;
    LocationListener locationListener;

    @Override
    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
        super.onRequestPermissionsResult(requestCode, permissions, grantResults);

        if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {

            if (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED) {

                locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, locationListener);
            }
        }
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        locationManager = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE);

        locationListener = new LocationListener() {
            @Override
            public void onLocationChanged(Location location) {
                Log.i("Location",location.toString());
                Log.i("GetAccuracy",location.getAccuracy());
            }

            @Override
            public void onStatusChanged(String s, int i, Bundle bundle) {

            }

            @Override
            public void onProviderEnabled(String s) {

            }

            @Override
            public void onProviderDisabled(String s) {

            }
        };

        if (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
            ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.ACCESS_FINE_LOCATION},1);
        } else {
            locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, locationListener);
        }
    }
}

我是 Android 的初学者,非常感谢任何代码帮助或解释。再次感谢您。

最佳答案

要记录浮点值,请使用 String.valueOf(location.getAccuracy());

Log.i("HasAccuracy", String.valueOf(location.getAccuracy());

关于java - 安卓(Java): Getting GPS location accuracy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53531482/

相关文章:

java - 如何使用java的模式匹配器匹配包含多行的字符串中的单词

java - 一种在 Java 中使用堆栈返回新的反向单链表的方法,保留相同的元素但以相反的顺序打印出来

android - 如何使用 Android 模拟器模拟旋转设备?

c# - 如何在 C# 中解决车辆跟踪 GPS 收集数据的最佳解决方案?

java - MapView 覆盖项需要是指向 Web View 的链接

java - 如何将字符串拆分为仅正整数和负整数?

android - 来自 Scringo Android 的示例代码出错

android - 使用 alternativeIdePath 在 Intellij 上创建插件时找不到 Android Studio

javascript - 记住智能手机当前位置的选择

swift - 从坐标系 WGS84 转换为 SWEREF991330