Android 获取经纬度
时间: 2023-11-08 16:06:00 浏览: 99
要在 Android 应用程序中获取经纬度,可以使用 Android 的定位服务。以下是一个简单的示例:
1. 在 AndroidManifest.xml 文件中添加以下权限:
```xml
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
```
2. 在代码中使用 LocationManager 和 LocationListener 来获取经纬度:
```java
LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
LocationListener locationListener = new LocationListener() {
@Override
public void onLocationChanged(Location location) {
double latitude = location.getLatitude();
double longitude = location.getLongitude();
// 在此处使用经纬度
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {}
@Override
public void onProviderEnabled(String provider) {}
@Override
public void onProviderDisabled(String provider) {}
};
locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, locationListener);
```
上述代码中,我们使用了 LocationManager.requestLocationUpdates() 方法来注册一个 LocationListener 来监听位置变化。在监听回调中,我们可以从 Location 对象中获取经纬度。可以使用 LocationManager.GPS_PROVIDER 或 LocationManager.NETWORK_PROVIDER 来获取位置信息。如果您想停止位置更新,可以使用 LocationManager.removeUpdates() 方法。
请注意,在获取位置信息之前,您需要先检查用户是否已授予访问位置权限。您可以使用以下代码检查和请求权限:
```java
if (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.ACCESS_FINE_LOCATION}, 1);
} else {
// 已授权
}
```
上述代码中,我们使用了 ActivityCompat.requestPermissions() 方法来请求位置权限。如果用户授予了权限,您可以在 onRequestPermissionsResult() 回调中处理结果。
阅读全文