我尝试在我的Xamarin Ui测试中以编程方式启用/禁用wifi。< br >我已经找到了这个:Android:如何以编程方式启用/禁用Wifi或互联网连接。但是它似乎根本不起作用。< br>
我还尝试了这样的方法:
Context appContext = Android.App.Application.Context;
var wifiManager = (WifiManager)appContext.GetSystemService(Context.WifiService);
bool status = false;
wifiManager.SetWifiEnabled(status);
第一行 (Android.App.Application.Context) 会引发一个异常:
Message: System.IO.FileNotFoundException : Could not load file or assembly 'Java.Interop, Version=0.1.0.0, Culture=neutral, PublicKeyToken=84e04ff9cfb79065' or one of its dependencies. The system cannot find the file specified.
我正在使用以下命名空间:
using Android.Net.Wifi;
using Android.Content;
我的项目引用了< code>Mono。Android。
后门方法对我来说很好。
对我有用的解决方案是以下组合:
1.:将以下行添加到Android项目的AndroidManifest.xml文件中:
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
2.:在Android项目的MainActivity.cs中添加以下行:
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 Forms。我有四个不同的项目:一个核心项目、一个Android项目、一个Ui项目和一个测试项目。我刚刚在不使用实际应用程序的情况下找到了第二个解决方案。
它使用ADB命令启用/禁用wifi:
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.Wifi设置会
打开wifi设置。
adb shell 输入密钥事件 23
启用/禁用 wifi。我不确定
为什么使用命令adb shell输入keyevent 19
,但它有效。
adb shell 输入 keyevent 82
单击菜单按钮以更改回原始应用。adb shell 输入点击 500 1000
单击坐标 x=500,y=1000(屏幕中心)。对于不同的解决方案,可能需要对此进行更改。
此解决方案的来源:
我正在尝试使用hazelcast mancenter配置wan复制,但我没有在此处获得选择快照启用/禁用功能的选项,因为该选项未在dropdown.Is中列出,有办法通过mancenter实现此功能吗?版本3.9.4 hazelcast版本3.9.3 谢谢
问题内容: 如何使用jQuery启用或禁用锚点? 问题答案: 为了防止锚跟随指定的位置,我建议使用:
20.2.3 禁用重启 如果您不想使用重启功能,可以使用spring.devtools.restart.enabled属性将其禁用。在大多数情况下,您可以在application.properties中设置它(这仍会初始化重启类加载器,但是它不会监视文件的变化)。 如果您需要完全禁用对重启的支持,比如,由于重启功能不适用某个特定的库,则需要在调用SpringApplication.run(…)之
问题内容: 我有一个下拉菜单(dropdown2), 如果 其中包含某些内容,则是必需的,但是它的选项数据由另一个下拉菜单(dropdown1)的ajax驱动。有时dropdown2将为空,在这种情况下,我可以不需要它。所以我可以通过调用此禁用javascript中的… 这可以正常工作,但服务器仍会触发逻辑。是否有人知道如果验证器设置为假客户端,我将如何强制服务器不进行验证? 问题答案: 您为什么
问题内容: $input.disabled = true; 要么 哪种标准方法?相反,如何启用禁用的输入? 问题答案: jQuery 1.6以上 要更改属性,您应该使用函数。 jQuery 1.5及以下 该函数不存在,但具有相似的功能: 设置禁用的属性。 要再次启用,正确的方法是使用 在任何版本的jQuery中 您始终可以依赖实际的DOM对象,并且如果只处理一个元素,它可能比其他两个选项要快一些: