朋友來家裏作客、顧客到店裏用餐…當他們想要給本身的手機連接Wi-Fi時,總免不了詢問Wi-Fi名稱和密碼。這種問密碼和給密碼的過程十分麻煩,經常還會有聽錯或者輸錯密碼的狀況,更重要的是無心間會形成密碼泄露。如何實現能夠不用手動輸入密碼,一鍵登陸連接Wi-Fi呢?java
華爲Nearby Service爲您提供了「Wi-Fi分享」新特性。經過此特性,用戶只須要在應用中選中待連網的設備並肯定協助其連網,便可實現一鍵接入Wi-Fi網絡。git
Wi-FiShareDemo是一個已經集成Nearby Service實現Wi-Fi分享的示例應用,本節介紹如何將這個示例應用運行起來及該示例應用的關鍵代碼。github
1臺華爲手機(分享方須要是華爲手機)json
1檯安卓設備(接受方須要是安卓5.0以上且安裝了HMSCore的設備,能夠是手機,電視盒子等安卓設備)網絡
分享方已鏈接Wi-Fi,接受方未鏈接app
在Android Studio中導入示例源代碼。ide
註冊成爲華爲開發者。工具
如您已經按上述步驟完成編譯構建並安裝到了手機上,則能夠按以下步驟進行體驗。注意:測試機A必須是華爲手機且已經鏈接Wi-Fi,測試機B能夠是其餘安卓手機且未鏈接目標Wi-Fi。開發工具
示例應用的源代碼託管在GitHub上,您能夠直接查看源碼。在這個示例應用中,類WifiShareHelper.java基於Nearby Service的接口作了封裝,提供了
源碼中僅有兩個類MainActivity.java和WifiShareHelper.java,上述分享Wi-Fi過程僅用了WifiShareHelper.java中鏈接Wi-Fi和分享Wi-Fi的兩個接口。測試
// The device request to connect WiFi public void requestWiFiConfig() { Log.d(TAG, "requestWiFiConfig"); mWifiShareEngine.startWifiShare(mWifiShareCallback, WifiSharePolicy.POLICY_SET) .addOnFailureListener(e -> Log.e(TAG, Objects.requireNonNull(e.getMessage()))); }
// The device to share wifi public void shareWiFiConfig() { Log.d(TAG, "Start to share WiFi"); mWifiShareEngine.startWifiShare(mWifiShareCallback, WifiSharePolicy.POLICY_SHARE) .addOnFailureListener(e -> Log.e(TAG, Objects.requireNonNull(e.getMessage()))); showListView(); setListViewListenerMode(); }
華爲開發者聯盟官網:
https://developer.huawei.com/consumer/en/hms/huawei-nearbyservice?ha_source=hms1
獲取開發指導文檔:
https://developer.huawei.com/consumer/en/doc/development/HMSCore-Guides-V5/introduction-0000001050040566-V5?ha_source=hms1
參與開發者討論請到Reddit社區:https://www.reddit.com/r/HuaweiDevelopers/
下載demo和示例代碼請到Github:https://github.com/HMS-Core
解決集成問題請到Stack Overflow:
https://stackoverflow.com/questions/tagged/huawei-mobile-services?tab=Newest
原文連接:https://developer.huawei.com/consumer/cn/forum/topic/0204415936476600459?fid=18
原做者:胡椒