Mwaimu Mtingele Ответов: 2

Как открыть страницу настроек местоположения или предложить пользователю включить местоположение


привет,
я взламывал свой мозг и гуглил напрасно. я пытаюсь найти способ предложить пользователю переключить местоположение либо перейдя непосредственно на страницу настроек, либо просто нажав Да на экране.
весь код, который я видел, кажется, не работает. есть ли у кого-нибудь что-то, что работает? подробный пример будет очень признателен. спасибо.
Я действительно Новичок в разработке Xamarin

Что я уже пробовал:

public static bool CheckGPSConnection()
        {
            var gpsConnection = DependencyService.Get<IGPSConnectivity>();
            return gpsConnection.CheckGPSConnection();
        }


И

if (Device.OS == TargetPlatform.Android)
{
    if (!App.CheckGPSConnection())
    {
        bool answer = await DisplayAlert("Alert", "Would you like to start GPS?", "Yes", "No");
        if (answer)
        {
              Android.App.Application.Context.StartActivity(new Android.Content.Intent(Android.Provider.Settings.ActionLocationSourceSettings));
        }
    }
}




также попробовал это сделать , создав службу зависимостей, как указано здесь android - Как открыть настройки из нашего приложения в xamarin.forms? - переполнение стека[^]


I also Tried This by creating dependency service using a class and wrote this code 

<pre>public interface ISettingsService
{
    void OpenSettings();
}




public class SettingsServiceAndroid : ISettingsService
{
    public void OpenSettings()
    {
        Xamarin.Forms.Forms.Context.StartActivity(new Android.Content.Intent(Android.Provider.Settings.ActionLocat‌​ionSourceSettings));
    }
}



и назвал его нижеследующим

DependencyService.Get<ISettingsService>().OpenSettings();

Graeme_Grant

А вы не пробовали спросить в газете Форумы Xamarin[^]?

Mwaimu Mtingele

Я пытался, но пока никто не ответил.

2 Ответов

Рейтинг:
2

Mwaimu Mtingele

через некоторое время я сам нашел решение.. я дал свое решение здесь Открыв страницу Настройки местоположения или запроса пользователя, чтобы включить местоположения — форумы на Xamarin [^]


Рейтинг:
0

Member 14532114

вышеописанное решение для Android было полезно с некоторыми изменениями

public void OpenSettings()
        {
            LocationManager LM = (LocationManager)Android.App.Application.Context.GetSystemService(Context.LocationService);


            if (LM.IsProviderEnabled(LocationManager.GpsProvider) == false)
            {                
                Intent intent = new Intent(Android.Provider.Settings.ActionLocationSourceSettings);
                intent.AddFlags(ActivityFlags.NewTask);
                intent.AddFlags(ActivityFlags.MultipleTask);
                Android.App.Application.Context.StartActivity(intent);
            }
            else
            {
                //this is handled in the PCL
            }
        }


CHill60

Дампы кода редко бывают полезны. Вы должны объяснить, какие "некоторые изменения" были необходимы и почему.