鴻蒙OS 使用指定網(wǎng)絡(luò)進(jìn)行數(shù)據(jù)訪問

2020-09-18 15:41 更新

場景介紹

應(yīng)用可以調(diào)用 API 接口來使用指定網(wǎng)絡(luò)進(jìn)行數(shù)據(jù)傳輸。在進(jìn)行數(shù)據(jù)傳輸前,需要先建立自定義的網(wǎng)絡(luò)類型。

接口說明

應(yīng)用使用指定網(wǎng)絡(luò)進(jìn)行數(shù)據(jù)訪問,所使用的接口說明如下。

類名 接口名 功能描述
NetSpecifier Builder() 創(chuàng)建一個指定網(wǎng)絡(luò)實(shí)例。
NetManager setupSpecificNet(NetSpecifier netSpecifier, NetStatusCallback callback) 建立指定的數(shù)據(jù)網(wǎng)絡(luò)。
removeNetStatusCallback(NetStatusCallback callback) 停止獲取數(shù)據(jù)網(wǎng)絡(luò)狀態(tài)。

開發(fā)步驟

  1. 調(diào)用 NetSpecifier.Builder( )構(gòu)建指定數(shù)據(jù)網(wǎng)絡(luò)的實(shí)例。

  1. 調(diào)用 NetManager.setupSpecificNet() 建立數(shù)據(jù)網(wǎng)絡(luò),通過 callback 獲取網(wǎng)絡(luò)狀態(tài)變化。

  1. 進(jìn)行數(shù)據(jù)發(fā)送。

   NetManager netManager = NetManager.getInstance(null);

    
   private class MmsCallback extends NetStatusCallback {
       @Override
       public void onAvailable(NetHandle netHandle) {
           // 通過setAppNet把后續(xù)應(yīng)用所有的請求都通過該網(wǎng)絡(luò)進(jìn)行發(fā)送
           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();
               // 之后可進(jìn)行url的其他操作
           } finally {
               connection.disconnect();
           }

           
           // 如果業(yè)務(wù)執(zhí)行完畢,可以停止獲取
           netManager.removeNetStatusCallback(this);
       }
   }

    
   MmsCallback callback = new MmsCallback();

    
   // 配置一個彩信類型的蜂窩網(wǎng)絡(luò)
   NetSpecifier req = new NetSpecifier.Builder()
       .addCapability(NetCapabilities.NET_CAPABILITY_MMS)
       .addBearer(NetCapabilities.BEARER_CELLULAR)
       .build();

    
   // 建立數(shù)據(jù)網(wǎng)絡(luò),通過callback獲取網(wǎng)絡(luò)變更狀態(tài)
   netManager.setupSpecificNet(req, callback);
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號