先上代码:
/**
* 定位服务
*/
public void getLocation() {
LocationManager 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) {
// 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;
}
Location location = locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER); //<span style="font-family: Arial, Helvetica, sans-serif;">LocationManager.NETWORK_PROVIDER 利用网络定位,</span><span style="font-family: Arial, Helvetica, sans-serif;">GPS_PROVIDER 利用GPS定位,由于我是在室内测试的,所以使用网络定位,最开始利用的GPS无法获取到位置,看网上其他博客的说法需要到室外才能使用GPS</span><span style="font-family: Arial, Helvetica, sans-serif;">
</span>
locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 2000, 0,locationListener);// 产生位置改变事件的条件设定为距离改变0米,时间间隔为2秒,设定监听位置变化
if (location != null) {
double lat = location.getLatitude();//获取纬度
double lng = location.getLongitude();//获取经度
Logs.d("lat---"+lat+"---lng---"+lng);
} else {
Logs.d("没有发现到当前位置");
}
}
private final LocationListener locationListener = new LocationListener() {
@Override
public void onLocationChanged(Location location) {
// TODO Auto-generated method stub
if (location != null) {
double lat = location.getLatitude();//获取纬度
double lng = location.getLongitude();//获取经度
Logs.d("lat--2-"+lat+"---lng---"+lng);
} else {
Logs.d("没有发现到当前位置2");
}
}
@Override
public void onProviderDisabled(String arg0) {
// TODO Auto-generated method stub
}
@Override
public void onProviderEnabled(String arg0) {
// TODO Auto-generated method stub
}
@Override
public void onStatusChanged(String arg0, int arg1, Bundle arg2) {
// TODO Auto-generated method stub
}
};
最后记得加上访问权限:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
D/tag: lat---30.672492---lng---104.101869
D/tag: lat--2-30.672501---lng---104.101871
D/tag: lat--2-30.672501---lng---104.101871
D/tag: lat--2-30.672501---lng---104.101871
D/tag: lat--2-30.672488---lng---104.101882