应用可以调用 API 接口来使用指定网络进行数据传输。在进行数据传输前,需要先建立自定义的网络类型。
应用使用指定网络进行数据访问,所使用的接口说明如下。
类名 | 接口名 | 功能描述 |
---|---|---|
NetSpecifier | Builder() | 创建一个指定网络实例。 |
NetManager | setupSpecificNet(NetSpecifier netSpecifier, NetStatusCallback callback) | 建立指定的数据网络。 |
removeNetStatusCallback(NetStatusCallback callback) | 停止获取数据网络状态。 |
NetManager netManager = NetManager.getInstance(null);
private class MmsCallback extends NetStatusCallback {
@Override
public void onAvailable(NetHandle netHandle) {
// 通过setAppNet把后续应用所有的请求都通过该网络进行发送
netManager.setAppNet(netHandle);
try {
HttpURLConnection connection = null;
String urlString = "https://www.huawei.com/";
URL url = new URL(urlString);
URLConnection urlConnection = netHandle.openConnection(url, java.net.Proxy.NO_PROXY);
if (urlConnection instanceof HttpURLConnection) {
connection = (HttpURLConnection) urlConnection;
}
connection.setRequestMethod("GET");
connection.connect();
// 之后可进行url的其他操作
} finally {
connection.disconnect();
}
// 如果业务执行完毕,可以停止获取
netManager.removeNetStatusCallback(this);
}
}
MmsCallback callback = new MmsCallback();
// 配置一个彩信类型的蜂窝网络
NetSpecifier req = new NetSpecifier.Builder()
.addCapability(NetCapabilities.NET_CAPABILITY_MMS)
.addBearer(NetCapabilities.BEARER_CELLULAR)
.build();
// 建立数据网络,通过callback获取网络变更状态
netManager.setupSpecificNet(req, callback);
(c) 2024 chaojicainiao.com MIT license