Бэкдор подходит для меня отлично.
Решение, которое работает для меня, было комбинацией:
1 .: Добавить следующую строку в файл AndroidManifest.xml проекта Android:
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
2 .: Добавить следующие строки вMainActivity.cs проекта Android:
using Java.Interop;
using Android.Net.Wifi;
[Export("ChangeWifiState")]
public void ChangeWifiState(bool state)
{
Context appContext = Android.App.Application.Context;
var wifiManager = (WifiManager)appContext.GetSystemService(WifiService);
wifiManager.SetWifiEnabled(state);
}
3 .: Вызвать следующий метод из теста Xamarin Ui:
app.Invoke("ChangeWifiState", false); // true to enable wifi, false to disable wifi
PS: я использую формы Xamarin.У меня есть четыре разных проекта: основной проект, проект Android, проект пользовательского интерфейса и тестовый проект.
Я только что нашел второе решение без использования реального приложения .
Он использует команды ADB для включения / выключения Wi-Fi:
var process = new System.Diagnostics.Process();
var startInfo = new System.Diagnostics.ProcessStartInfo
{
WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden,
FileName = "cmd.exe",
Arguments = "/C adb shell am start -a android.intent.action.MAIN -n com.android.settings/.wifi.WifiSettings adb shell input keyevent 19 & adb shell input keyevent 19 & adb shell input keyevent 23 & adb shell input keyevent 82 & adb shell input tap 500 1000"
};
process.StartInfo = startInfo;
process.Start();
Это можно использовать без рутованного устройства :).
Шаги объяснили:
adb shell am start -a android.intent.action.MAIN -n com.android.settings/.wifi.WifiSettings
открывает настройки Wi-Fi.
adb shell input keyevent 23
включает / отключает Wi-Fi.
Я не уверен, почему используется команда adb shell input keyevent 19
, но она работает.
adb shell input keyevent 82
нажимает кнопку меню, чтобы вернуться к исходному приложению.
adb shell input tap 500 1000
щелкает координату x = 500, y = 1000 (центр экрана). Возможно, это потребуется изменить для различных решений.
Источники для этого решения: