作者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/cn.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