我正在构建一个Android应用程序,需要通过无法访问互联网的WiFi网络进行通信.问题是,即使连接WiFi,当wifi网络上没有连接互联网时,机器人选择使用蜂窝/移动数据.
我已经阅读了许多关于该问题的帖子,其中许多涉及生根设备,但生产应用程序无法实现这一点(根设备不是一种选择).其他解决方案(如我的代码bellow)建议使用bindProcessToNetwork()哪个在我的Sony Z2上完美运行,但在我测试的其他设备上没有(所有运行6.0.1)
private void bindToNetwork() {
final ConnectivityManager connectivityManager = (ConnectivityManager) mActivity.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkRequest.Builder builder;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
builder = new NetworkRequest.Builder();
//set the transport type do WIFI
builder.addTransportType(NetworkCapabilities.TRANSPORT_WIFI);
connectivityManager.requestNetwork(builder.build(), new ConnectivityManager.NetworkCallback() {
@Override
public void onAvailable(Network network) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
connectivityManager.bindProcessToNetwork(null);
if (barCodeData.getSsid().contains("screenspace")) {
connectivityManager.bindProcessToNetwork(network);
}
} else {
//This method was deprecated in API level 23
ConnectivityManager.setProcessDefaultNetwork(null);
if (barCodeData.getSsid().contains("screenspace")) {
ConnectivityManager.setProcessDefaultNetwork(network);
}
}
connectivityManager.unregisterNetworkCallback(this);
}
});
}
}
Run Code Online (Sandbox Code Playgroud) 我正在开发一个移动消息应用程序.我正在经历所需的技术,并找到了两个MQTT和Apache Kafta.对我来说,两者似乎都以同样的方式做同样的事情(在订阅和发布主题方面).
我听说MQTT适合手机,因为它重量很轻?那么基本上这两者之间的区别是什么呢?
我试图在Windows IOT中找到单播,Dns和网关地址.通常我可以使用NetworkInterface.GetAllNetworkInterfaces()方法访问这些值 .
但在UWP中,缺少这种方法.
有没有替代方法来获得这些价值观?
我正在按照本教程获得以下错误:
Severity Code Description Project File Line Suppression State
Error DEP0100 : Please ensure that target device has developer mode enabled. Could not obtain a developer license due to error 800704C7.
Run Code Online (Sandbox Code Playgroud)
我不知道如何这样做Raspberry Pi 3(我已经将它公开IP在前面Target Machine的Debug选项卡Properties中solution explorer.我正在远程机器上进行调试,ARM如下面的屏幕截图所示.如果您有经验,任何信息都会受到特别赞赏使用Windows 10 IoT核心.
我的笔记本电脑正在运行Windows 10企业,我正在使用Visual Studio 2015社区版.我打算在已经运行Windows 10内幕版本的Raspberry Pi上远程运行MS IoT团队提供的Blinky示例.

visual-studio raspberry-pi iot windows-10-iot-core windowsiot
我是物联网的新手.我检查了英特尔网站,并通过了其他一些链接.但我无法清楚地了解英特尔Galileo和英特尔爱迪生之间有什么区别?什么时候应该用?
有谁知道一个很好的参考资源?
我正在使用node.js mosca MQTT代理来处理一些物联网(iot)应用程序.
https://github.com/mcollina/mosca
主题可以为mosca代理获得的最大消息长度是多少?限制消息长度的因素有哪些?
如果我想增加消息长度,是否有可以修改的配置参数或者我可以更改代码的哪一部分?
我有一个使用Socket编程与设备通信的IoT应用程序.一切顺利,直到iOS 11发布.它在iOS 11及更高版本中不通信,但它适用于早期版本(最多10个).这是代码.
建立套接字连接
(void)setUpSocketConnection {
@try {
CFStreamCreatePairWithSocketToHost(kCFAllocatorDefault, (__bridge CFStringRef) VeranoHost,VeranoPort , &readStream, &writeStream);
[self open];
}
@catch (NSException *exception) {
NSLog(@"Open Exception:%@", exception.reason);
}
}
Run Code Online (Sandbox Code Playgroud)
打开流
(void)open {
//NSLog(@"Opening streams.");
_outputStream = (__bridge NSOutputStream *)writeStream;
_inputStream = (__bridge NSInputStream *)readStream;
[_outputStream setDelegate:self];
[_inputStream setDelegate:self];
dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH,0);
dispatch_async(queue, ^ {
[_outputStream scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];
[_inputStream scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];
[[NSRunLoop currentRunLoop] run];
});
[_outputStream open];
[_inputStream open];
//[self disableNaglesAlgorithmForStream:_inputStream];
// NSLog(@"Connected");
// self.timeOutTimer = [NSTimer scheduledTimerWithTimeInterval:10.0 …Run Code Online (Sandbox Code Playgroud) 我必须将UDP数据包发送到没有互联网连接的WiFi模块(提供自己的AP)但是当我将移动设备连接到AP时,Android会重定向移动数据接口上的数据包,因为它已经连接了互联网.
我已经使用下面的代码来完成我的工作,但它似乎不适用于Android M.
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
private void setWifiInterfaceAsDefault() {
ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkRequest.Builder builder = new NetworkRequest.Builder();
NetworkRequest networkRequest= builder.addCapability(NetworkCapabilities.NET_CAPABILITY_NOT_RESTRICTED)
.addTransportType(NetworkCapabilities.TRANSPORT_WIFI)
.build();
connectivityManager.requestNetwork(networkRequest, new ConnectivityManager.NetworkCallback());
}
Run Code Online (Sandbox Code Playgroud)
我还补充道
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
Run Code Online (Sandbox Code Playgroud)
在我的AndroidManifest.xml上,我确保自己Settings.System.canWrite(this)返回true但仍然没有.
提前致谢.
Azure IoT Hub支持AMQP,MQTT,HTTP协议.为了自定义这些协议,我们有Azure IoT协议网关.我可以在MQTT协议定制上找到好的样本.我需要一些使用Azure IoT协议网关进行基于TCP的协议自定义的示例代码.
编辑(为了得到答案): OP提出的问题是使用Azure协议网关支持基于TCP的专有协议的示例.目前,IoT中心仅支持AMQP,MQTT和HTTP.虽然这些协议实际上依赖于TCP,但如果没有额外的AMQP,MQTT或HTTP层,则集线器不支持直接TCP连接.正如解释在这里,我们需要一个定制的基于TCP协议的一个基本的例子.
想象一下,一个基本设备只能通过TCP在给定的IP地址/端口上发送一些专有的有效载荷:我们需要一个网关定制的例子,允许该设备将数据发送到集线器.
协议网关的当前代码设计很差,因为它严重依赖于MQTT.
也加上一些赏金.
iot ×10
android ×2
c# ×2
mqtt ×2
networking ×2
.net ×1
access-point ×1
alljoyn ×1
android-wifi ×1
apache-kafka ×1
azure ×1
embedded ×1
frameworks ×1
intel-edison ×1
ios ×1
ios11 ×1
iotivity ×1
node.js ×1
objective-c ×1
protocols ×1
raspberry-pi ×1
soc ×1
sockets ×1
tcp ×1
uwp ×1
wifi ×1
windowsiot ×1