【发布时间】:2020-01-18 20:42:46
【问题描述】:
我正在尝试在 Android 项目中将Xamarin.Forms.GoogleMaps 与定位服务一起使用。我的问题是应用程序从不提示我提供位置权限。我的 MainActivity.cs 页面如下所示
protected override void OnCreate(Bundle savedInstanceState)
{
TabLayoutResource = Resource.Layout.Tabbar;
ToolbarResource = Resource.Layout.Toolbar;
base.OnCreate(savedInstanceState);
Xamarin.Essentials.Platform.Init(this, savedInstanceState);
Xamarin.FormsGoogleMaps.Init(this, savedInstanceState);
global::Xamarin.Forms.Forms.Init(this, savedInstanceState);
LoadApplication(new App());
}
public override void OnRequestPermissionsResult(int requestCode, string[] permissions, [GeneratedEnum] Android.Content.PM.Permission[] grantResults)
{
Xamarin.Essentials.Platform.OnRequestPermissionsResult(requestCode, permissions, grantResults);
base.OnRequestPermissionsResult(requestCode, permissions, grantResults);
}
我拥有清单文件中列出的权限
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
<uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
但是当我尝试使用Xamarin.Forms.GoogleMaps 并设置MyLocationEnabled="True"
<StackLayout Grid.Row="2">
<maps:Map VerticalOptions="FillAndExpand" HorizontalOptions="FillAndExpand" MyLocationEnabled="True">
</maps:Map>
</StackLayout>
我收到以下错误
Java.Lang.SecurityException: '我的位置需要权限 ACCESS_FINE_LOCATION 或 ACCESS_COARSE_LOCATION'
该应用程序从不要求我授予我认为 OnRequestPermissionsResult 应该处理的权限。我肯定错过了什么。我必须手动请求权限吗?
【问题讨论】:
标签: android xamarin xamarin.forms xamarin.android