[英]How can I get the current location as a latitude and longitude in Android?
我正在尝试使用模拟器返回当前位置的纬度和经度。 我收到一个错误,我需要允许ACCESS_FINE_LOCATION,即使它已经在我的清单文件中了。 有谁知道为什么以下代码即使在清单文件中也无法使用呢?
提前致谢!
我尝试使用fusedLocationClient也有一个版本,但是我认为这没有任何作用,因为我的位置没有改变。
此代码的目的是将纬度和经度方面的当前位置显示为烤面包。
public void displayCurrentLocation(View view){
LocationManager lm = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
Location location = lm.getLastKnownLocation(LocationManager.GPS_PROVIDER);
double longitude = location.getLongitude();
double latitude = location.getLatitude();
Toast.makeText(getApplicationContext(),"Latitude:" + latitude + " Longitude:" + longitude,Toast.LENGTH_SHORT);
// fusedLocationClient.getLastLocation()
// .addOnSuccessListener(this, new OnSuccessListener<Location>() {
// @Override
// public void onSuccess(Location location) {
// double longitude = location.getLongitude();
// double latitude = location.getLatitude();
// Toast.makeText(getApplicationContext(),"Latitude:" + latitude + " Longitude:" + longitude,Toast.LENGTH_SHORT);
// if (location != null) {
// // Logic to handle location object
// }
// }
// });
}
如果您的应用需要危险的权限,则每次执行需要该权限的操作时,都必须检查您是否具有该权限。 从Android 6.0(API级别23)开始,用户可以随时撤消任何应用程序的权限,即使该应用程序定位于较低的API级别也是如此。
有关更多信息,请参阅文档 。
这意味着您应该在用户每次使用该功能时要求您的许可。
这是一个例子
if (ContextCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_FINE_LOCATION) ==
PackageManager.PERMISSION_GRANTED &&
ContextCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_COARSE_LOCATION) ==
PackageManager.PERMISSION_GRANTED) {
//here you do your code for getting latLng
}
else {
ActivityCompat.requestPermissions(this, new String[] {
Manifest.permission.ACCESS_FINE_LOCATION,
Manifest.permission.ACCESS_COARSE_LOCATION },
TAG_CODE_PERMISSION_LOCATION);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.