首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >连接-如何手动/以编程方式将IsConnected属性设置为False

连接-如何手动/以编程方式将IsConnected属性设置为False
EN

Stack Overflow用户
提问于 2018-03-07 07:22:12
回答 2查看 161关注 0票数 1

在Xamarin插件连通性(Xam.Plugin.Connectivity)中,有一种从PCL中检测网络连接性变化的简单方法,例如:

代码语言:javascript
运行
AI代码解释
复制
CrossConnectivity.Current.ConnectivityChanged += (sender, args) =>
{
    page.DisplayAlert("Connectivity Changed", "IsConnected: " + args.IsConnected.ToString(), "OK");
};

属性IsConnected是只读的,所以我的问题是:

是否有一种方法可以手动/以编程方式将IsConnected 设置为false或以其他方式模拟丢失的网络连接?

EN

回答 2

Stack Overflow用户

发布于 2018-03-07 07:56:26

我不相信有一种方法可以编程地模拟缺少的网络连接。显然,你可以在模拟器和实际设备上做其他的事情来达到你想要的目的。我不确定用例在这里是什么,但是您可以尝试使用类似的

CrossConnectivity.Current.IsRemoteReachable("TestHostname", 80, 1000)

而不是像您所说的那样依赖于IsConnected属性,它是只读的。如果希望用户“断开连接”,请将一个无效的主机名交给该方法,如果希望他们“连接”,则向其传递一些有效的信息。

票数 0
EN

Stack Overflow用户

发布于 2018-03-07 14:44:50

实现一个MockConnectivity:

代码语言:javascript
运行
AI代码解释
复制
using Plugin.Connectivity.Abstractions;

namespace MyMockConnectivity
{
  public class MockConnectivity : BaseConnectivity
  {
    public void SetIsConnected(bool value)
    {
        OnConnectivityChanged(new ConnectivityChangedEventArgs { IsConnected = value });
    }

    public override bool IsConnected { get; }
...

使用:

代码语言:javascript
运行
AI代码解释
复制
using MyMockConnectivity;
using Plugin.Connectivity.Abstractions;
...
MockConnectivity MockConnectivity = new MockConnectivity();
IConnectivity Current = MockConnectivity;

Current.ConnectivityChanged += (sender, args) =>
{
  Debug.WriteLine("IsConnected: " + args.IsConnected);
};

模拟连接更改:

代码语言:javascript
运行
AI代码解释
复制
// Simulate network connection
MockConnectivity.SetIsConnected(true);

// Simulate lost network connection
MockConnectivity.SetIsConnected(false);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49155460

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档