Android 原生获取定位信息,定位经纬度
·
其实一般的方法就可以获取到经纬度,网上这样的例子也很多
方法一:
@SuppressLint("MissingPermission")
private static Location getLastKnownLocation(Activity activity) {
LocationManager mLocationManager = (LocationManager) activity.getApplicationContext().getSystemService(LOCATION_SERVICE);
List<String> providers = mLocationManager.getProviders(true);
Location bestLocation = null;
for (String provider : providers) {
Location l = mLocationManager.getLastKnownLocation(provider);
if (l == null) {
continue;
}
if (bestLocation == null || l.getAccuracy() < bestLocation.getAccuracy()) {
bestLocation = l;
}
}
return bestLocation;
}
但是在一些做过手脚的Android系统设备就是不行,于是:
方法二:
@SuppressLint("MissingPermission")
private static void getLastKnownLocation2(Activity activity) {
LocationManager mLocationManager = (LocationManager) activity.getApplicationContext().getSystemService(LOCATION_SERVICE);
mLocationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 3000, 0, locationListener);
mLocationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 3000, 0, locationListener);
}
private static LocationListener locationListener = new LocationListener() {
@Override
public void onStatusChanged(String provider, int status, Bundle arg2) {
Log.d("cyp", "onStatusChanged: ");
}
@Override
public void onProviderEnabled(String provider) {
Log.d("cyp", "onProviderEnabled: " + provider );
}
@Override
public void onProviderDisabled(String provider) {
Log.d("cyp", "onProviderDisabled: " + provider);
}
@Override
public void onLocationChanged(Location location) {
//如果位置发生变化,重新显示
Log.d("cyp", "onLocationChanged:经度 "+location.getLongitude()+"纬度"+location.getLatitude());
//这边就是获取到的经纬度,测试估计要4到5分钟才能获取得到,耐心点等等吧
}
};
这边直接获取代码 LocationUtil.java-Java文档类资源-CSDN下载
更多推荐
所有评论(0)