[問題] Kotlin-BroadcastReceiver問題

作者: taiwan123 (coco)   2020-04-27 11:46:54
大家好,最近正在研究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
第一次發文,希望各位能夠幫忙解答,感激不盡
作者: psychedelico (快樂不過是做自己)   2020-04-29 15:58:00
可以先確定broadcast receiver有沒有收到東西
作者: kobe8112 (小B)   2020-04-29 18:45:00
不太明白,你說要依據wifi狀態決定switch button的開關對吧?那為啥要呼叫set函式? set是設值不是取值啊如果你的確就是需要透過你的程式開關wifi,那你只能跳到設定頁讓使用者手動開關了(Android Q以上)
作者: taiwan123 (coco)   2020-04-29 20:48:00
我的用意是:在app讀取現在Wi-Fi狀態。假設是讀到off,則switch自動切成off。而我可以透過同一個switch,手動switch on後去開啟系統Wi-Fi,所以才會有setEnabled。目前可以做到用switch去開Wi-Fi,但我從系統關Wi-Fi後switch不會變成turn off,所以判斷是廣播沒發出或沒收到
作者: zcbxvsdf (東北一頭羊)   2020-04-29 22:58:00
你建立一個Receiver,你有在Manifest裡註冊他嗎?
作者: taiwan123 (coco)   2020-04-30 09:50:00
我是在onStart註冊的,所以動態跟靜態註冊不是二選一?是兩個都要做?
作者: psychedelico (快樂不過是做自己)   2020-04-30 10:31:00
是二選一沒錯,但建議可以在onReceive印log看看是否有收到任何訊息
作者: taiwan123 (coco)   2020-05-01 11:14:00
好,我試試看,謝謝大家

Links booklink

Contact Us: admin [ a t ] ucptt.com