【黑馬程序員】鴻蒙Next星河版項目實戰-守護助手APP應用開發-Day1-12-網絡能力-查詢IP地址

黑马程序员
29粉絲
4 次觀看·2024年9月19日
本課程100% 鴻蒙NEXT星河版原生應用開發,API 12 版本 SDK。基本覆蓋主流APP的能力集,將來遷移項目都可以看這個項目,權限、位置、地圖、錄音、相冊、播放器、傳感器、通訊錄、數據庫等應有盡有。
在前面的時候呢
我們已經講解了如何去查詢我們的網絡連接
到底連網了還是沒連網
用的時候一定要注意配那個權限啊
那在調用剛剛的那個叫做獲取網絡類型的時候呢
也得注意一下啊
就是網絡類型裏面的這個查詢查詢之前一定要先檢查他當前有沒有網啊
因爲呢
在返回值裏面啊
在這一邊呢
他其實是他預留的這幾個類型啊
他其實都是在有網的情況下
他才能調用啊
沒網的情況下強行調用他會報錯的啊
所以大家書寫的時候呢
一定要注意提前先做好判斷
然後呢
我們再去查他到底是什麼網
那接下來的這個叫做查IP地址也都是同理
查IP地址呢
這裏的流程
那我直接就跟大家說了啊
查IP地址呢
他要拿的是另外一個
剛剛查的是這個叫做他對吧
叫做網絡的能力信息啊
這個叫做能力信息裏面有我們的這個網絡類型
其實這裏呢
還有一個信息也比較多
這個呢
是叫做網絡的連接信息啊
就是連接信息在連接信息裏面呢
他會返回一個這個東西啊
一樣啊
需要傳用默認網絡
傳用默認網絡之後呢
他返回的是一個叫做網絡的連接信息
在連接信息裏面呢
可以返回這個連接時候的網卡呀
所屬的域啊
然後呢
這個所謂的什麼鏈路啊
還有這些什麼網絡地址呀
之類的對不對啊
其實我們在這裏
這一邊呢
會有對應的一些這個叫做網絡地址吧
OK好
那我們接下來呢
就去拿一下這個所謂的這些叫做網絡地址
OK好
那我們接下來呢
去獲取一下
這裏是要拿到這個叫做網絡的連接信息啊
一樣啊
用到的都是那個同樣的權限
權限我們前面已經配過了啊
所以我們就不再需要了
好
我們這裏呢
就調研一下他
一樣需要傳入一個所謂的網絡劇品
網絡劇品呢
就是傳入默認的網絡就好了啊
好
我們接下來再調研一下他
OK
這是獲取網絡類型啊
那麼接下來呢
我們這裏是繼續獲取什麼呢
獲取獲取這個叫做IP地址吧
獲取IP地址
如果要做那些啊
叫做物聯網項目
就是你多個設備要連的時候啊
很多時候是需要拿到這個所謂的一個IP啊
好
那我們這裏呢
就是再去封裝一下吧
這個所謂的IP地址
或者我換一個名字吧
就叫做他
這個呢
是獲取的網絡連接信息啊
然後呢
從裏面提取出IP地址啊
他是藏在這個連接信息裏面
那接下來呢
我們一步一步來啊
在調用這個API的時候呢
需要傳入參數參數呢
其實就是我們的默認網絡就好了啊
好
所以呢
按流程來說
第一步還是要先獲取默認網絡
好
那麼
獲取默認網絡呢
那還是一樣
connection.getter.default.net
OK
那麼啊
最終呢
他會有一個返回值啊
返回值的類型呢
哎
其實就是這個net handle
OK
我們可以鼠標懸停確認一下這個類型
這類型呢
沒有錯
是吧啊
是爲我們這個叫做獲取連接信息的時候呢
哎
傳入傳進去的啊
接下來呢
我們再調用第二個步驟啊
是吧
過去網絡連接信息
前面叫能力信息
這個叫連接信息啊
好的connection.getter.connector.properties
好的
那我們就拿一下
哎
這裏呢
我們還是用這個帶think的寫法啊
好
呃
這裏呢
我們就傳入前面所謂的這個叫默認網絡
好的
那最終呢
啊
返回值呢
他這裏啊
其實就是那個叫做connection.properties
這名字很長啊
不過語意化特別好啊
好
就是直譯過來嘛
對吧
這個connection就是連接啊
這個後面的呢
就是那個屬性是吧
好屬性信息
那接下來呢
我們再把這個信息呢
哎
繼續啊
就從裏面提取出來一些啊
這個字段啊
對了
我先打印一下吧
先打印一下
看一下里面有什麼
這個所謂的連接信息也得注意啊
我們必須是有網絡的情況下才調用
他沒有網絡的情況下
你調用他還是會崩潰啊
他會導致程序崩潰啊
那我們繼續寫一下啊
有網絡的情況下啊
再去什麼呢
或許這個網絡連接信息
好的
那我們接下來到模擬器裏面測一下
要卸載啊
我剛剛也是那個權限的時候嗎
對啊
給大家去註釋
註釋掉了那個權限啊
然後那現在又開回來了啊
好
我們重新卸載一下好
那現在呢
打開之後呢
哎
這裏啊
他會蹦出來停頓的東西啊
那這一堆東西呢
我們可以直接看一下這個API是吧
他返回的連接信息裏面有非常之多啊
第一個呢
interface內啊
是一個叫做網卡是吧
到底啊
這個是以太網就網網卡的一個信息啊
然後呢
這裏所屬什麼域是吧
然後呢
再往後面啊
什麼最大傳輸單元呢啊
然後還有這個叫做鏈路信息
利用信息裏面呢
有這個叫做連接的地址是不是啊好
那其實這個就是我們的一個IP地址啊
那再往後面呢
還有一些啊
這個其他的一些啊
網絡地址啊好
那不過呢啊
經過測試啊
這個IP地址啊
應該是這個應該是這個是鏈路信息裏面的這個address啊
好的
那我們接下來呢
先拿到這個所謂的這個叫做鏈路信息
然後呢
這個鏈路信息裏面他還是個宿主啊
宿主呢
我們還要把這個關鍵的一些點啊
去提取出來啊
這個DNS呢啊
其實並不是我們的這個DNS啊
這個這個並不是我們的真正的一個IP啊
OK
還是會有一些些這個不一樣啊
好
那像我們這裏呢
是缺少了一些字段
比如說缺少了那個叫做就是跟網關相關的一些東西吧
好
那這個呢是不一樣的
而我們拿的是這個鏈路信息裏面的
呃
那接下來切換回來
這個字段呢
長得會有一點點深
那考慮到我們用起來的時候啊
訪問起來比較方便
那我還是先提取一下這個叫做linkaddress
linkaddress是什麼呢
是這個叫做鏈路信息
先提取鏈路信息鏈路信息呢
我們啊拿一個單獨的長量去給他存一下吧
這個名稱我從這裏複製
linkaddress
好的
那這裏呢
是通過他去訪問一下這個叫做linkaddress
當然我們鏈路信息呢啊
只要拿第一個就好了啊
那我們就提取一下這個下標爲0的這一項
這裏複述我變成單數吧
好
先提取一下這個鏈路信息
那鏈路信息如果能成功的提取到的話
那我們接下來呢
就在這裏呢
把他的IP地址取出來啊
好的
IP地址呢
我們在整一個頁面中已經提前準備好了一個變量
這個變量呢
是叫做IP address啊
我們給他複製就好了啊
好
那我們接下來呢
回來到這裏
如果有網的情況下啊
我們提取鏈路信息
在鏈路信息裏面呢
我們再拿到這個所謂的address
當然這個address還沒到啊
其實address裏面還有一級
這個叫做address
他嵌到的稍微有點深啊
好
那我們這裏呢
是提取
提取啊
這個叫做IP地址
鏈路信息裏面的IP地址
好的
那接下來呢
我們再去測試一下啊
再去測試一下啊
看一下呢
是否可以把我們的這個
IP地址展示出來
好的
點擊出來
大家發現這一邊呢
是不是展示了一個叫做IP地址啊
對吧
好
那到此爲止呢
哎
關於這個IP呢
又算是準備完成
那拿到IP地址呢
在這裏呢
還是一樣啊
前面需要有一些前置工作
IP地址他長的會有一點點深
他是屬於鏈路信息裏面的一個直屬性啊
那怎麼拿到所謂的這個鏈路信息呢
哎
我們還得先去拿到這個叫做網絡連接的信息啊啊
當然這一邊呢
還要先啊
準備好這個叫做問網絡的參數纔可以哦啊
這個調用呢
也並不是什麼時候調用啊
但書寫的時候依舊需要書寫在有網絡的情況下
我們再去調用
否則的話
程序還是會崩潰的啊
好這一點還是需要各位小夥伴去注意的
那現在呢
繼續給大家一點時間啊
再把這個叫做網絡連接信息裏面的IP地址提取一下
最終呢
展示到這個網絡信息裏面
好接下來大家動手吧
