android - 使用 GPS 获取用户的当前位置

标签 android geolocation gps

我是安卓新手。 我目前正在开发一个 android 项目,我需要使用 GPS 获取用户的当前位置。 但是我的代码无法正常工作。

java代码

package com.example.checkinapp;

    import android.app.Activity;
    import android.content.Context;
    import android.location.Location;
    import android.location.LocationListener;
    import android.location.LocationManager;
    import android.os.Bundle;
    import android.widget.TextView;

    public class MainActivity extends Activity 
    {

        TextView textlat;
        TextView textlong;

        @Override
        protected void onCreate(Bundle savedInstanceState) 
        {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            textlat = (TextView)findViewById(R.id.textlat);
            textlong = (TextView)findViewById(R.id.textlong);

            LocationManager lm =   (LocationManager)getSystemService(Context.LOCATION_SERVICE);
            LocationListener ll = new mylocationlistener();
            lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, ll);
        }
        class mylocationlistener implements LocationListener{

            @Override
            public void onLocationChanged(Location location) {

                if(location!=null)
                {
                    double lat = location.getLatitude();
                    double lng = location.getLongitude();

                    textlat.setText(Double.toString(lat));
                    textlong.setText(Double.toString(lng));
                }
            }

            @Override
            public void onProviderDisabled(String provider) {
                // TODO Auto-generated method stub

            }
            @Override
            public void onProviderEnabled(String provider) {
                // TODO Auto-generated method stub
            }
            @Override
            public void onStatusChanged(String provider, int status,
                    Bundle extras) {
                // TODO Auto-generated method stub
            }
        }
    }

activity_main.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:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >

<TextView
    android:id="@+id/textlat"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_marginTop="16dp"
    android:text=""
    android:ems="10">
</TextView>

<TextView
    android:id="@+id/textlong"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginTop="25dp"
    android:text=""
    android:ems="10">
</TextView>

</RelativeLayout>

AndroidMainfest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.checkinapp"
android:versionCode="1"
android:versionName="1.0" >

<uses-sdk
    android:minSdkVersion="8"
    android:targetSdkVersion="17" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>

<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
        android:name="com.example.checkinapp.MainActivity"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
</application>

</manifest>

我正在尝试将用户的纬度和经度显示到 TextView 中。 但我没有得到结果。 谢谢。

最佳答案

LocationManager manager = (LocationManager) this .getSystemService(Context.LOCATION_SERVICE); 
Location loc =   manager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);

Toast.makeText( getApplicationContext(),"My current location is: " + "Latitud =" +
  loc.getLatitude() + "Longitud = " + loc.getLongitude(),Toast.LENGTH_SHORT).show();

关于android - 使用 GPS 获取用户的当前位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17290246/

相关文章:

android - iOS 中的 Cordova geoLocation 插件无法正常工作

javascript - Titanium Mobile 在 iOS 上没有获得正确的准确性

android - Android 中的 GPS、AGPS、LBS 是什么?

android - 如何可视化指向特定坐标(纬度,经度)的箭头,给定俯仰和偏航

android - 使用 setScaleX() setScaleY() 更改 android 窗口大小

java - 错误 :Execution failed for task ':lib:compileReleaseAidl' . > Executor Singleton 未启动

android - java.lang.IllegalStateException : You need to use a Theme. AppCompat 主题 - 使用 AppCompat 主题时

java - Android:比较两个 map 键,如果键相等则创建新对象

cordova - 屏幕锁定时 navigator.geolocation.getCurrentPosition()

ios - MKReverseGeocoder不返回SubAdministrativeArea