当名为entLocation的输入框处于焦点时,我想获取设备的经度和纬度。我正在使用Xamarin.Essential Geolocation获取设备的 GPS 位置,我按照文档和教程进行操作,但仍然无法获取 GPS 位置。我已经在我的 android 清单下面添加了权限,但仍然没有。我在“Error3”上收到显示警报,Error3是Unable to get location时的异常。
错误是“ Java.Lang.NullPointerException:尝试在空对象引用上调用虚拟方法'void android.app.Activity.requestPermissions(java.lang.String[],int)' ”
我的问题:
1. 我的代码有什么错误?
2.我可以离线获取我的gps位置吗?如果是,我该如何实现?
使用权限 android:name="android.permission.ACCESS_COARSE_LOCATION"
使用权限 android:name="android.permission.ACCESS_FINE_LOCATION"
使用功能 android:name="android.hardware.location" android:required="false"
使用-feature android:name="android.hardware.location.gps" android:required="false"
使用-feature android:name="android.hardware.location.network" android:required="false"
private async void entLocation_FocusedAsync(object sender, FocusEventArgs e)
{
try
{
var request = new GeolocationRequest(GeolocationAccuracy.Medium);
var location = await Geolocation.GetLocationAsync(request);
if (location != null)
{
entLocation.Text = location.Longitude.ToString() + "," + location.Latitude.ToString();
}
}
catch (FeatureNotSupportedException fnsEx)
{
await DisplayAlert("Error1", fnsEx.ToString(), "ok");
}
catch (PermissionException pEx)
{
await DisplayAlert("Error2", pEx.ToString(), "ok");
}
catch (Exception ex)
{
await DisplayAlert("Error3", ex.ToString(), "ok");
}
}