鸿蒙OS 使用指定网络进行数据访问
场景介绍
应用可以调用 API 接口来使用指定网络进行数据传输。在进行数据传输前,需要先建立自定义的网络类型。
接口说明
应用使用指定网络进行数据访问,所使用的接口说明如下。
类名 | 接口名 | 功能描述 |
---|---|---|
NetSpecifier | Builder() | 创建一个指定网络实例。 |
NetManager | setupSpecificNet(NetSpecifier netSpecifier, NetStatusCallback callback) | 建立指定的数据网络。 |
removeNetStatusCallback(NetStatusCallback callback) | 停止获取数据网络状态。 |
开发步骤
- 调用 NetSpecifier.Builder( )构建指定数据网络的实例。
- 调用 NetManager.setupSpecificNet() 建立数据网络,通过 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);