Android中利用GoogleAPI显示当前位置的经度,纬度

package com.example.dell.gpsex1;

import android.Manifest;
import android.content.pm.PackageManager;
import android.location.Criteria;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.location.LocationProvider;
import android.support.v4.app.ActivityCompat;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.TextView;

import java.util.Iterator;
import java.util.List;

public class MainActivity extends AppCompatActivity {

    private TextView textView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        textView = findViewById(R.id.textView);
        LocationManager locationManager = (LocationManager) getSystemService(LOCATION_SERVICE);

        //权限检查的代码
        if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
            // TODO: Consider calling
            //    ActivityCompat#requestPermissions
            // here to request the missing permissions, and then overriding
            //   public void onRequestPermissionsResult(int requestCode, String[] permissions,
            //                                          int[] grantResults)
            // to handle the case where the user grants the permission. See the documentation
            // for ActivityCompat#requestPermissions for more details.
            return;
        }
        locationManager.requestLocationUpdates(
                LocationManager.GPS_PROVIDER,//指定GPS定位提供者
                1000,//指定数据更新的间隔时间
                1,//位置间隔的距离为1m
                new LocationListener() {//监听GPS信息是否改变
                    @Override
                    public void onLocationChanged(Location location) {//GPS信息发送改变时回调

                    }

                    @Override
                    public void onStatusChanged(String provider, int status, Bundle extras) {//GPS状态发送改变时回调

                    }

                    @Override
                    public void onProviderEnabled(String provider) { //定位提供者启动时回调

                    }

                    @Override
                    public void onProviderDisabled(String provider) { //定位提供者关闭时回调

                    }
                }
        );
        Location location = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);//获取最新的定位信息
        locationUpdates(location);
    }

    public void locationUpdates(Location location){

        if(location != null){
            StringBuilder stringBuilder = new StringBuilder(); //构建一个字符串构建器,用于记录定位信息
            stringBuilder.append("您的位置是:\n");
            stringBuilder.append("经度:");
            stringBuilder.append(location.getLongitude());
            stringBuilder.append("\n纬度:");
            stringBuilder.append(location.getLatitude());
            textView.setText(stringBuilder.toString());
        }
        else{
            textView.setText("GPS失效啦...");
        }
    }
}

还需在AndroidManifest.xml中添加两行权限代码:

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission>

猜你喜欢

转载自blog.csdn.net/qq_41700374/article/details/84930015
今日推荐