嗨,我有一个简单的android系统,可在地图上显示用户当前位置。当我尝试在android 9 api28上运行时,出现错误java.lang.SecurityException:“ gps”位置提供程序需要ACCESS_COARSE_LOCATION或ACCESS_FINE_LOCATION权限。我将模拟器与android 8.1 oreo api 27一起使用时,一切正常。此外,当我将此项目导出到apk文件时,我尝试使用android 10在智能手机上运行时也遇到了同样的问题。
这是MainActivity文件
protected override void OnCreate(Bundle savedInstanceState)
{
TabLayoutResource = Resource.Layout.Tabbar;
ToolbarResource = Resource.Layout.Toolbar;
base.OnCreate(savedInstanceState);
Xamarin.FormsMaps.Init(this, savedInstanceState);
Xamarin.Essentials.Platform.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);
}
}
}
在我的AndroidManifest文件中,我有此功能,但它不起作用。
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />