我尝试使用this教程在Android中打开位置设置,但在这种方法中我不知道该写什么来打开应用程序的位置设置:
public void OpenSettings(){ }
我需要额外的库吗?我写了以下代码:
public interface ILocSettings
{
void OpenSettings();
}
public void OpenSettings(){ }
在GPS按钮方法中,我编写了以下代码:
var myAction = await DisplayAlert("Location", "Please Turn On Location", "OK", "CANCEL");
if (myAction)
{
if (Device.RuntimePlatform == global::Xamarin.Forms.Device.Android)
{
//DependencyService.Get<ISettingsService>().OpenSettings();
global::Xamarin.Forms.DependencyService.Get<ILocSettings>().OpenSettings();
}
else
{
_ = DisplayAlert("Device", "You are using some other shit", "YEP");
}
}
else
{
_ = DisplayAlert("Alert", "User Denied Permission", "OK");
}
出现消息,但我不知道在OpenSettings()中写入什么以打开手机上的GPS位置设置。
3条答案
按热度按时间t8e9dugd1#
有一个软件包,将使打开应用程序设置的方式更容易。
只要写:
插件名称插件.权限:)
vktxenjb2#
在Android上打开其他Activity是通过Intents完成的。要打开位置设置,您可以使用ACTION_LOCATION_SOURCE_SETTINGS Intent。
类似这样的东西可能会起作用:
如果Android不喜欢Application Context,您可能需要解析顶部Activity并将其用作Context。
如果您使用的是Xamarin.Essentials,您可以通过以下方式获得最高活动:
Platform.CurrentActivity
:5us2dqdw3#
幸运的是,库可以完成这项工作,因此您不需要编写实现此功能所需的所有代码。由于Plugin.Permissions已弃用,因此您可以使用Xamarin Essentials中的ShowSettingsUI函数,只需使用一行代码:
您可以从Microsoft文档中查看更多详细信息