GPS定位

来源:互联网 发布:手机淘宝更多宝贝链接 编辑:程序博客网 时间:2024/05/01 01:47

比较简单:直接贴代码:(要手动授权,因为GPS已经是比较隐私的权限了)

需要权限:

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

public class MainActivity extends AppCompatActivity {    private LocationManager locationManager;    private static final String TAG = "LOCATION_DEMO";    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        locationManager = (LocationManager) getSystemService(Context.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) {            return;        }        Location location = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);        updateLocation(location);        /**         * 监听当前位置变化         * 第一个参数:获取位置方式         * 第二个参数:过多少时间更新一次         * 第三个参数:精确单位         * 第四个参数:监听器         */        locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 6000, 10, locationListener);    }    private LocationListener locationListener = new LocationListener() {        //当位置改变的时候调用        @Override        public void onLocationChanged(Location location) {            updateLocation(location);        }        @Override        public void onStatusChanged(String s, int i, Bundle bundle) {        }        @Override        public void onProviderEnabled(String s) {            Log.i(TAG, "提供者正在启用");        }        @Override        public void onProviderDisabled(String s) {            Log.i(TAG, "提供者无法启用");        }    };    @Override    protected void onPause() {        super.onPause();        if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {            return;        }        locationManager.removeUpdates(locationListener);    }    //获取用户位置的函数,利用Log显示    private void updateLocation(Location location) {        String latLng;        if (location != null) {            double lat = location.getLatitude();            double lng = location.getLongitude();            latLng = "Latitude:" + lat + "  Longitude:" + lng;        } else {            latLng = "Can't access your location";        }        Log.i(TAG, "The location has changed..");        Log.i(TAG, "Your Location:" +latLng);    }}

0 0