[問題] Kotlin-BroadcastReceiver問題

看板AndroidDev作者 (coco)時間4年前 (2020/04/27 11:46), 編輯推噓0(0017)
留言17則, 4人參與, 4年前最新討論串1/1
大家好,最近正在研究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://www.ptt.cc/bbs/AndroidDev/M.1587959216.A.A5F.html

04/29 15:58, 4年前 , 1F
可以先確定broadcast receiver有沒有收到東西
04/29 15:58, 1F

04/29 18:45, 4年前 , 2F
不太明白,你說要依據wifi狀態決定switch button的開關
04/29 18:45, 2F

04/29 18:46, 4年前 , 3F
對吧?那為啥要呼叫set函式? set是設值不是取值啊
04/29 18:46, 3F

04/29 18:49, 4年前 , 4F
如果你的確就是需要透過你的程式開關wifi,那你只能跳到
04/29 18:49, 4F

04/29 18:49, 4年前 , 5F
設定頁讓使用者手動開關了(Android Q以上)
04/29 18:49, 5F

04/29 20:48, 4年前 , 6F
我的用意是:在app讀取現在Wi-Fi狀態。假設是讀到off
04/29 20:48, 6F

04/29 20:48, 4年前 , 7F
,則switch自動切成off。而我可以透過同一個switch,
04/29 20:48, 7F

04/29 20:48, 4年前 , 8F
手動switch on後去開啟系統Wi-Fi,所以才會有setEnabl
04/29 20:48, 8F

04/29 20:48, 4年前 , 9F
ed。目前可以做到用switch去開Wi-Fi,但我從系統關Wi-
04/29 20:48, 9F

04/29 20:48, 4年前 , 10F
Fi後switch不會變成turn off,所以判斷是廣播沒發出或
04/29 20:48, 10F

04/29 20:48, 4年前 , 11F
沒收到
04/29 20:48, 11F

04/29 22:58, 4年前 , 12F
你建立一個Receiver,你有在Manifest裡註冊他嗎?
04/29 22:58, 12F

04/30 09:50, 4年前 , 13F
我是在onStart註冊的,所以動態跟靜態註冊不是二選一
04/30 09:50, 13F

04/30 09:50, 4年前 , 14F
?是兩個都要做?
04/30 09:50, 14F

04/30 10:31, 4年前 , 15F
是二選一沒錯,但建議可以在onReceive印log看看是否
04/30 10:31, 15F

04/30 10:31, 4年前 , 16F
有收到任何訊息
04/30 10:31, 16F

05/01 11:14, 4年前 , 17F
好,我試試看,謝謝大家
05/01 11:14, 17F
文章代碼(AID): #1UfbMmfV (AndroidDev)
文章代碼(AID): #1UfbMmfV (AndroidDev)