前言:
說明兩個地方
1.點擊按鈕啟動SmartConfig的地方
2.最終跳轉的地方
說明
這節說明一下,如何把本人源碼里面的SmartConfig程序移植到自己的工程
我要把所有的全部拿出來講,讓大家可以方便的把每一個功能移植到自己的工程.
新建一個項目
主頁面只放一個按鈕和一個文本框
按鈕是負責跳轉到配網綁定頁面,文本框顯示配網綁定完成以后獲取的Wi-Fi的MAC信息
新建一個新頁面,配網綁定用的
名字隨意
換個布局
里面放一個EditText 用來顯示咱連接的路由器名稱
一個EditText 用來輸入密碼
一個按鈕用來啟動SmartConfig
打開教程的APP源碼
注意:不支持中文目錄,把源碼拷貝到英文目錄下,然后用軟件打開
自己新建的工程選擇導入模塊
選擇源碼里面的esptouch
添加依賴
implementation project(':esptouch')
拷貝源碼里面的 ActivityBindDevices 到咱的新工程
這種錯誤是因為SDK版本不一致可能報錯,自己可以重新敲
我是用的28,大家如果用29,就會報錯,29的包開始用 Androidx.XXXXX
修改布局的名字,根據控件的ID修改下
在AndroidManifest里面加上Activity
<activity
android:name=".ActivityBindDevices"
android:label="@string/app_name">
</activity>
在AndroidManifest里面加上權限
我把咱后期用到的全部加上了
<uses-feature android:name="android.hardware.camera" /> <uses-feature android:name="android.hardware.camera.autofocus" /> <uses-permission android:name="android.permission.VIBRATE" /> <!--讀手機內容的權限 --> <uses-permission android:name="android.permission.READ_PHONE_STATE"/> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.CAMERA" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.CHANGE_WIFI_MULTICAST_STATE" /> <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /> <uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES"/> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
加上動態權限申請
String[] PermissionString={//需要提醒用戶申請的權限 Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.CAMERA, Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.READ_PHONE_STATE, Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.REQUEST_INSTALL_PACKAGES, };
https://www.cnblogs.com/yangfengwu/p/11909387.html 參考這節加上
主頁面加上按鈕點擊跳轉事件
主頁面加上顯示跳轉過來傳遞的MAC數據
測試
一,下載單片機程序
"測試APP使用SmartConfig綁定Wi-Fi 設備通過MQTT控制設備"
二,調整波動開關位置,STM32和Wi-Fi通信
三,短接STM32的PB2和Wi-Fi模塊的RST引腳(為了做項目穩定可靠,請使用單片機硬件復位Wi-Fi)
四.長按PB5大約4S,等待指示燈快閃,松開PB5,Wi-Fi模塊進入配網狀態
五.輸入路由器密碼,點擊APP的"搜索設備"按鈕,開始搜索設備
六.配網以后自動跳轉到主頁面,顯示配網獲取的Wi-Fi的MAC地址
結語
反正APP的SmartConfig也就是這樣使用,后期自己想優化程序和頁面自己搞吧.