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

前言

朋友來家裏作客、顧客到店裏用餐…當他們想要給本身的手機連接Wi-Fi時,總免不了詢問Wi-Fi名稱和密碼。這種問密碼和給密碼的過程十分麻煩,經常還會有聽錯或者輸錯密碼的狀況,更重要的是無心間會形成密碼泄露。如何實現能夠不用手動輸入密碼,一鍵登陸連接Wi-Fi呢?java

華爲Nearby Service爲您提供了「Wi-Fi分享」新特性。經過此特性,用戶只須要在應用中選中待連網的設備並肯定協助其連網,便可實現一鍵接入Wi-Fi網絡。git

Wi-FiShareDemo

Wi-FiShareDemo是一個已經集成Nearby Service實現Wi-Fi分享的示例應用,本節介紹如何將這個示例應用運行起來及該示例應用的關鍵代碼。github

工具準備

  • 1臺華爲手機(分享方須要是華爲手機)json

  • 1檯安卓設備(接受方須要是安卓5.0以上且安裝了HMSCore的設備,能夠是手機,電視盒子等安卓設備)網絡

  • 分享方已鏈接Wi-Fi,接受方未鏈接app

  • 開發工具 Android Studio(3.X or later)

構建示例應用

  • 在Android Studio中導入示例源代碼。ide

  • 註冊成爲華爲開發者工具

  • 參考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

原做者:胡椒

相關文章
相關標籤/搜索