连接到WiFi时,在android上强制使用手机连接
我有一个诊断设备,也可以作为Wifi接入点。任何设备都可以连接到该接入点并从该设备请求信息。该设备显然无法通过该网络访问互联网 我尝试创建一个android应用程序,使用提供的Wifi网络从设备请求信息,然后使用手机连接将数据上传到互联网上的某个服务器 然而,无论何时连接Wifi网络,Android似乎都会关闭手机连接。由于Wifi网络未连接到互联网,因此无法上传数据,应用程序也无用 到目前为止,我尝试使用连接到WiFi时,在android上强制使用手机连接,android,networking,routing,wifi,cellular-network,Android,Networking,Routing,Wifi,Cellular Network,我有一个诊断设备,也可以作为Wifi接入点。任何设备都可以连接到该接入点并从该设备请求信息。该设备显然无法通过该网络访问互联网 我尝试创建一个android应用程序,使用提供的Wifi网络从设备请求信息,然后使用手机连接将数据上传到互联网上的某个服务器 然而,无论何时连接Wifi网络,Android似乎都会关闭手机连接。由于Wifi网络未连接到互联网,因此无法上传数据,应用程序也无用 到目前为止,我尝试使用ConnectivityManager请求移动网络并将其绑定到我的通信套接字。此外,我还尝
ConnectivityManager
请求移动网络并将其绑定到我的通信套接字。此外,我还尝试迭代所有网络接口,并将通信套接字绑定到蜂窝接口的IP地址。但是,这两个请求都失败了,因为我无法从应用程序中查询蜂窝网络接口
我如何通过蜂窝式互联网连接将数据从Wifi网络中的设备转发到某台服务器
这个问题应该在Android版本5.1.0中解决,下面是正确的示例代码
NetworkRequest cellularRequest = new NetworkRequest.Builder()
.addTransportType(NetworkCapabilities.TRANSPORT_CELLULAR)
.addCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET).build();
if (connectivityManager != null) {
connectivityManager.requestNetwork(cellularRequest, new ConnectivityManager.NetworkCallback() {
@Override
public void onAvailable(@NonNull Network network) {
super.onAvailable(network);
// do request with the network
OkHttpClient.Builder builder = new OkHttpClient.Builder();
builder.socketFactory(network.getSocketFactory());
OkHttpClient client = builder.build();
Call call = client.newCall(request);
Response response = call.execute();
// do remove callback. if you forget to remove it, you will received callback when cellular connect again.
connectivityManager.unregisterNetworkCallback(this);
}
@Override
public void onUnavailable() {
super.onUnavailable();
// do remove callback
connectivityManager.unregisterNetworkCallback(this);
}
});
}