教你集成Nearby Service實現一鍵Wi-Fi分享功能


前言

朋友來家里做客、顧客到店里用餐…當他們想要給自己的手機鏈接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。

  1. 在測試機B上打開Wi-FiShareDemo,點擊“Connect Wi-Fi”

在這里插入圖片描述

  1. 測試機A已連上Wi-Fi,打開Wi-FiShareDemo,點擊Share Wi-Fi”

在這里插入圖片描述

  1. 在測試機A上選擇待分享的手機,確認兩台手機上的驗證碼一致,選擇“ALLOW”

在這里插入圖片描述

  1. 在測試機B上點擊彈出框的提示“ALLOW”,允許連接WLAN。

在這里插入圖片描述

關鍵代碼說明

示例應用的源代碼托管在GitHub上,您可以直接查看源碼。在這個示例應用中,類WifiShareHelper.java基於Nearby Service的接口做了封裝,提供了
源碼中僅有兩個類MainActivity.java和WifiShareHelper.java,上述分享Wi-Fi過程僅用了WifiShareHelper.java中連接Wi-Fi和分享Wi-Fi的兩個接口。

  1. 連接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())));
}
  1. 分享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

獲取開發指導文檔:
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

原作者:胡椒


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM