我必须将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但仍然没有.
提前致谢.
我知道它之前被问过(有限或没有解决方案),但我没有看到任何最近的更新,我认为我的场景是独特的,所以我将开始一个新的线程.
我有一个Raspberry Pi,它在其他方面起着热点作用.根据设计,DHCP不会分发默认网关.我的用例是与Pi作为服务器交互的一个或多个设备.
其中一个连接的设备将是移动设备(编辑:运行我设计的自定义应用程序,这是整个解决方案的一部分),该设备将保持其蜂窝连接,而不是用于网络共享或路由,但应用程序可以访问内部和外部资源同时进行.
目前:
IOS:这与我在IOS上的预期完全一样 - 它感觉到WiFi网络没有默认网关并通过小区发送外部流量.
Android:这根本不起作用.即使没有默认网关,Android也固执地看到WiFi连接并禁用蜂窝网络.
Windows Phone:一种混合型.两个网络都保持不变,但我的方案在公共DNS中有DNS条目,公共站点链接到Pi上的资源.如果我使用Pi的WiFi IP地址直接链接到资源,它可以正常工作(尽管这会导致与安全性相关的其他问题).如果我通过FQDN链接,我实际上不确定发生了什么.虽然我在手机上安装的每个网络实用程序都可以通过DNS正确解析FQDN到Pi地址,但它无法从Web浏览器解析.
希望这是有道理的.问题:如何在2015年全面启用此功能?:)就我的目的而言,Pi作为私人不可路由的热点比WiFi直接或蓝牙更好.记得我不是要电话去ROUTE; 我需要我的自定义应用程序才能同时连接到Pi和公共Internet.我希望所有手机能够完成IOS在这方面的工作.
我目前的情况是Pi托管网页(以及其他内容),这是我的偏好,但这甚至可以原生解决吗?
在android中是否可以通过WiFi路由所有传入的数据流量,并通过移动网络传输所有传出流量.
在stackoverflow上找到答案 如何在Android中为OBD2设备同时使用Wifi和移动数据.但它确实只为一个主机路由数据.
还有一个应用程序SuperDownload使用wifi和移动网络来实现更快的下载速度.我正在尝试做这样的事情.
在Android WiFi和移动网络不能同时工作.是否可以通过生根设备使其工作?(SuperDownload需要root).
我正在编写可以通过互联网上的某些数据处理蜂窝数据的软件,并使用直接打印通过WiFi将发票打印到HP打印机.我没有使用路由器或其他网络设备.所以我知道新的Android 7.1有一个功能,不能连接到无法访问互联网的网络.当我禁用蜂窝数据时,它连接到wifi并打印它没有任何问题.
有没有解决这种情况的方法.所以当我连接到没有互联网的wifi时,无论如何都会切换到wifi.