Как программно открыть страницу настроек Интернета на Android-устройствеAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Как программно открыть страницу настроек Интернета на Android-устройстве

Сообщение Anonymous »

Используя .NET MAUI, я хочу программно открыть эту страницу: на устройстве Android откройте Настройки > Подключения > WiFi. Здесь отображается подключенная в данный момент сеть и доступные сети. В разных версиях Android оно выглядит немного по-разному, но в основном оно выглядит так (извините за некачественное изображение):

[img]https://i .stack.imgur.com/KE0aV.png[/img]

Когда пользователь открывает эту страницу, он выберет локальную сеть Wi-Fi, созданную ранее в программе.
Для этого мне, вероятно, придется вызвать код, специфичный для платформы, и это нормально, я просто не знаю, какой код для Android использовать.
Мне уже давали этот ответ раньше, чтобы использовать AppInfo.Current.ShowSettingsUI(). Это не то, что мне нужно, поскольку при этом открывается страница настроек приложения. Я хочу программно открыть вышеупомянутую страницу настроек Android.
Что я пробовал?
Я успешно выполнил руководство, в котором используется код Android для сделайте что-нибудь простое, поэтому я думаю, что если я найду правильный API Android для вызова, то, надеюсь, со мной все будет в порядке (к сожалению, моя Java не существует, поэтому я довольно потерян на странице Android-Dev). Я не уверен, какие разрешения мне потребуются, но я обязательно смогу их установить, когда придет время.
РЕДАКТИРОВАНИЕ: успех, вот что я сделал
В ViewModel у меня есть простой старый метод, к которому я обращаюсь, нажав кнопку:

Код: Выделить всё

namespace SandboxProject.ViewModel;
public partial class OpenSettingsAttemptsPageViewModel : ObservableObject
{
[RelayCommand]
private async Task ActionWifiSettings()
{
// put code here
}
}
Далее я просто добавил строку кода, предложенную мне ниже:

Код: Выделить всё

    [RelayCommand]
private async Task ActionWifiSettings()
{
Platform.CurrentActivity?.StartActivity(new Intent(Settings.ActionWifiSettings));
}
Наконец, я очистил код, добавив несколько условных операторов, несколько операторов использования и попытку/ловушку:

Код: Выделить всё

#if ANDROID
using Android.Content;
using Android.Provider;
#endif

namespace SandboxProject.ViewModel;
public partial class OpenSettingsAttemptsPageViewModel : ObservableObject
{
[RelayCommand]
private async Task ActionWifiSettings()
{
#if ANDROID
try
{
Platform.CurrentActivity?.StartActivity(new Intent(Settings.ActionWifiSettings));
}
catch (Exception ex)
{
await App.Current!.MainPage!.DisplayAlert("Exception", ex.Message, "OK");
}
#endif
}
}
Я запускал код на нескольких эмуляторах, используя разные версии Android (ничего особенного) и свой физический телефон, и все работало отлично. Я не нарушал никаких разрешений... Я оставил AndroidManifest.xml по умолчанию.

Подробнее здесь: https://stackoverflow.com/questions/782 ... oid-device
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»