如何使用xamarin在android中打开位置设置

v6ylcynt  于 2023-04-27  发布在  Android
关注(0)|答案(3)|浏览(189)

我尝试使用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位置设置。

t8e9dugd

t8e9dugd1#

有一个软件包,将使打开应用程序设置的方式更容易。
只要写:

CrossPermissions.Current.OpenAppSettings();

插件名称插件.权限:)

vktxenjb

vktxenjb2#

在Android上打开其他Activity是通过Intents完成的。要打开位置设置,您可以使用ACTION_LOCATION_SOURCE_SETTINGS Intent。
类似这样的东西可能会起作用:

var intent = new Android.Content.Intent(Android.Provider.Settings.ActionLocationSourceSettings);
Android.App.Application.Context.StartActivity(intent);

如果Android不喜欢Application Context,您可能需要解析顶部Activity并将其用作Context。
如果您使用的是Xamarin.Essentials,您可以通过以下方式获得最高活动:Platform.CurrentActivity

var intent = new Android.Content.Intent(Android.Provider.Settings.ActionLocationSourceSettings);
Platform.CurrentActivity.StartActivity(intent);
5us2dqdw

5us2dqdw3#

幸运的是,库可以完成这项工作,因此您不需要编写实现此功能所需的所有代码。由于Plugin.Permissions已弃用,因此您可以使用Xamarin Essentials中的ShowSettingsUI函数,只需使用一行代码:

Xamarin.Essentials.AppInfo.ShowSettingsUI();

您可以从Microsoft文档中查看更多详细信息

相关问题