作者taiwan123 (coco)
看板AndroidDev
標題[問題] Kotlin-BroadcastReceiver問題
時間Mon Apr 27 11:46:54 2020
大家好,最近正在研究Kotlin BroadcastReceiver的寫法,目標是有個switch,在Wi-Fi狀
態切換時,能夠切換on-off
https://i.imgur.com/NYcY9AH.jpg
以下是我的程式碼:
AndroidManifest. xml
https://i.imgur.com/dKlAmo3.png
MainActivity. kt
https://i.imgur.com/sBULPUS.png
https://i.imgur.com/qKCoV2s.png
遇到幾個問題想請教:
1. 透過監聽器可以去切換Wi-Fi開關,但是從系統Wi-Fi開關時,switch不會跟著改變。請
問是Broadcast註冊有問題嗎?
2. 在使用setWifiEnable時,被畫刪除線,顯示是deprecated in Java。google一下,解釋
如下:意思是在API29就不能使用這個function? 那要如何達成這個功能呢?還是我只能將
模擬器的API降到29以下?
https://i.imgur.com/AknzpbL.png
https://i.imgur.com/gfZx5Kn.png
第一次發文,希望各位能夠幫忙解答,感激不盡
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 180.218.20.108 (臺灣)
※ 文章網址: https://webptt.com/m.aspx?n=bbs/AndroidDev/M.1587959216.A.A5F.html
1F:→ psychedelico: 可以先確定broadcast receiver有沒有收到東西 04/29 15:58
2F:→ kobe8112: 不太明白,你說要依據wifi狀態決定switch button的開關 04/29 18:45
3F:→ kobe8112: 對吧?那為啥要呼叫set函式? set是設值不是取值啊 04/29 18:46
4F:→ kobe8112: 如果你的確就是需要透過你的程式開關wifi,那你只能跳到 04/29 18:49
5F:→ kobe8112: 設定頁讓使用者手動開關了(Android Q以上) 04/29 18:49
6F:→ taiwan123: 我的用意是:在app讀取現在Wi-Fi狀態。假設是讀到off 04/29 20:48
7F:→ taiwan123: ,則switch自動切成off。而我可以透過同一個switch, 04/29 20:48
8F:→ taiwan123: 手動switch on後去開啟系統Wi-Fi,所以才會有setEnabl 04/29 20:48
9F:→ taiwan123: ed。目前可以做到用switch去開Wi-Fi,但我從系統關Wi- 04/29 20:48
10F:→ taiwan123: Fi後switch不會變成turn off,所以判斷是廣播沒發出或 04/29 20:48
11F:→ taiwan123: 沒收到 04/29 20:48
12F:→ zcbxvsdf: 你建立一個Receiver,你有在Manifest裡註冊他嗎? 04/29 22:58
13F:→ taiwan123: 我是在onStart註冊的,所以動態跟靜態註冊不是二選一 04/30 09:50
14F:→ taiwan123: ?是兩個都要做? 04/30 09:50
15F:→ psychedelico: 是二選一沒錯,但建議可以在onReceive印log看看是否 04/30 10:31
16F:→ psychedelico: 有收到任何訊息 04/30 10:31
17F:→ taiwan123: 好,我試試看,謝謝大家 05/01 11:14