小编mar*_*lam的帖子

以编程方式连接到无网络的wifi

我正在使用以下代码连接到没有互联网连接的WiFi网络,因为它拥有自己的网络服务器,我想连接即使没有可用的互联网连接.

WifiConfiguration wifiConfiguration = new WifiConfiguration();
wifiConfiguration.SSID = String.format("\"%s\"", scanResult.SSID);
wifiConfiguration.preSharedKey = String.format("\"%s\"", "secret");

int netId = wifiManager.addNetwork(wifiConfiguration)
wifiManager.disconnect();
wifiManager.enableNetwork(netId, true);
wifiManager.reconnect();
Run Code Online (Sandbox Code Playgroud)

这适用于Android Marshmallow下面的每个设备(我使用CM13,所以它可能与CyanogenMod有关?):当我使用此代码进行连接时,Android仍然使用移动连接并用感叹号标记WiFi符号.几秒后它会显示一个通知,询问我是否要保持连接,因为网络没有互联网连接.

问题:我的应用尝试自动连接到我的网络服务器失败,因为显然没有互联网连接.当然可以等到我能够访问我的网络服务器,但它应该在没有用户交互的情况下工作.

ChromeCast 或任何其他物联网设备如何解决这个问题?我在设置ChromeCast设备时从未看到过这样的通知.

android wifi android-wifi iot android-6.0-marshmallow

10
推荐指数
1
解决办法
5693
查看次数

涉及静态类型转换的f#方法约束的泛型类型

我正在尝试在FSharp中创建一个函数,它将接受一个接口类型的参数和一个派生类型的参数,它将这两个参数作为该接口的实现传递:

简化示例:

type IFoo =
    abstract member Compare : IFoo -> bool

type Foo =
    interface IFoo with
        member this.Compare _ = false

let doCompare (a : IFoo) (b : IFoo) = a.Compare(b)

let comp  (x : IFoo) (y : #IFoo) = doCompare x (y :> IFoo)
let comp2 (x : 'T)   (y : #'T)   = doCompare x (y :> 'T)
Run Code Online (Sandbox Code Playgroud)

我在泛型版本上遇到以下两个错误(这里是comp2):

在参数上:

This construct causes code to be less generic than indicated by its type annotations. 
The type variable …

f#

2
推荐指数
1
解决办法
422
查看次数

标签 统计

android ×1

android-6.0-marshmallow ×1

android-wifi ×1

f# ×1

iot ×1

wifi ×1