private void getLocation() {
locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
String locationProvider = "";
List<String> providers = locationManager.getProviders(true);
//GPS,网络定位是否可用
if (providers.contains(LocationManager.GPS_PROVIDER)) {
locationProvider = LocationManager.GPS_PROVIDER;
Toast.makeText(getApplicationContext(),"GPS定位",Toast.LENGTH_SHORT).show();
} else if (providers.contains(LocationManager.NETWORK_PROVIDER)) {
locationProvider = LocationManager.NETWORK_PROVIDER;
Toast.makeText(getApplicationContext(),"网络定位",Toast.LENGTH_SHORT).show();
} else {
return;
}
locationListener = new LocationListener() {
//当坐标改变时触发此函数,如果Provider传进相同的坐标,它就不会被触发
@Override
public void onLocationChanged(Location location) {
//Log.i("location",location.getLatitude()+"-"+location.getLongitude());
}
// Provider的状态在可用、暂时不可用和无服务三个状态直接切换时触发此函数
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
}
// Provider被enable时触发此函数,比如GPS被打开
@Override
public void onProviderEnabled(String provider) {
}
// Provider被disable时触发此函数,比如GPS被关闭
@Override
public void onProviderDisabled(String provider) {
}
};
try{
Location location = locationManager.getLastKnownLocation(locationProvider);
if (location != null){
Log.i("location",location.getLatitude()+"-"+location.getLongitude());
}else {
located = "定位";
}
locationManager.requestLocationUpdates(locationProvider, 1000, 1, locationListener);
}catch (SecurityException e){
located = "定位";
Toast.makeText(getApplicationContext(),"no permission",Toast.LENGTH_SHORT).show();
}
invalidateOptionsMenu();
}
Android-GPS,网络定位
最新推荐文章于 2025-01-29 21:41:57 发布