朋友来家里作客、顾客到店里用餐…当他们想要给本身的手机连接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
原做者:胡椒