前言
朋友來家里做客、顧客到店里用餐…當他們想要給自己的手機鏈接Wi-Fi時,總免不了詢問Wi-Fi名稱和密碼。這種問密碼和給密碼的過程十分麻煩,常常還會有聽錯或者輸錯密碼的情況,更重要的是無意間會造成密碼泄露。如何實現可以不用手動輸入密碼,一鍵登錄鏈接Wi-Fi呢?
華為Nearby Service為您提供了“Wi-Fi分享”新特性。通過此特性,用戶只需要在應用中選中待連網的設備並確定協助其連網,即可實現一鍵接入Wi-Fi網絡。
Wi-FiShareDemo
Wi-FiShareDemo是一個已經集成Nearby Service實現Wi-Fi分享的示例應用,本節介紹如何將這個示例應用運行起來及該示例應用的關鍵代碼。
工具准備
-
1台華為手機(分享方需要是華為手機)
-
1台安卓設備(接受方需要是安卓5.0以上且安裝了HMSCore的設備,可以是手機,電視盒子等安卓設備)
-
分享方已連接Wi-Fi,接受方未連接
-
開發工具 Android Studio(3.X or later)
構建示例應用
-
在Android Studio中導入示例源代碼。
-
注冊成為華為開發者。
-
參考Nearby Service 開發准備在華為應用市場創建一個您的應用。注意:需要下載“agconnect-services.json”文件和參考指導生成簽名證書並放置在app/目錄下。
- 在Android Studio中運行該應用將其安裝到測試機。
操作步驟
如您已經按上述步驟完成編譯構建並安裝到了手機上,則可以按如下步驟進行體驗。注意:測試機A必須是華為手機且已經連接Wi-Fi,測試機B可以是其他安卓手機且未連接目標Wi-Fi。
- 在測試機B上打開Wi-FiShareDemo,點擊“Connect Wi-Fi”
- 測試機A已連上Wi-Fi,打開Wi-FiShareDemo,點擊Share Wi-Fi”
- 在測試機A上選擇待分享的手機,確認兩台手機上的驗證碼一致,選擇“ALLOW”
- 在測試機B上點擊彈出框的提示“ALLOW”,允許連接WLAN。
關鍵代碼說明
示例應用的源代碼托管在GitHub上,您可以直接查看源碼。在這個示例應用中,類WifiShareHelper.java基於Nearby Service的接口做了封裝,提供了
源碼中僅有兩個類MainActivity.java和WifiShareHelper.java,上述分享Wi-Fi過程僅用了WifiShareHelper.java中連接Wi-Fi和分享Wi-Fi的兩個接口。
- 連接Wi-Fi(requestWiFiConfig)
// 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())));
}
- 分享Wi-Fi(shareWiFiConfig)
// 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
參與開發者討論請到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
原作者:胡椒