未显示Android GPS数据

时间:2015-11-06 10:48:46

标签: android gps

我是Android开发的新手。在过去的几个月里,我构建了一个正在运行的应用程序。现在我想改进每次打开应用程序时困扰我的所有小事情。

在这种情况下,我尝试获得GPS(仅GPS)位置。无论何时进入位置更新,都应显示。

出于任何原因,第一个位置(我可以看到它们在调试日志中进入)将被忽略,并且不会显示在我的设备上。

以下是代码:

public class GpsLogging extends Activity{
@Override
public void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_gps_logging);

    LocationManager mlocManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
    LocationListener mlocListener = new MyLocationListener();
    mlocManager.requestLocationUpdates( LocationManager.GPS_PROVIDER, 0, 0, mlocListener);
}

public class MyLocationListener implements LocationListener
{
    @Override
    public void onLocationChanged(Location loc)
    {
        double lat = loc.getLatitude();
        double lon = loc.getLongitude();
        float accuracy = loc.getAccuracy();

        TextView textView = (TextView) findViewById(R.id.gpsPosition);
        textView.setText("My current location is: \n" +
                "Latitude = " + lat +"\n"+
                "Longitude = " + lon +"\n"+
                "Accuracy = " + accuracy +" m");

    }

    @Override
    public void onProviderDisabled(String provider) {

    }

    @Override
    public void onProviderEnabled(String provider) {
    }

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

如果有人知道为什么忽略不准确的数据会很好。

这是相应的xml请求:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
tools:context="com.example.example.GpsLogging">

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/gpsPosition"
    android:text="Aquiring GPS Position"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="46dp" />

<ProgressBar
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/progressBar"
    android:layout_centerVertical="true"
    android:layout_centerHorizontal="true" />

1 个答案:

答案 0 :(得分:0)

使用

 .getLastKnownLocation()

方法

示例:

Location earlierLocation = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);

原因:您只需打印onLocationChanged(新gps)。