大家好,最近正在研究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
第一次发文,希望各位能够帮忙解答,感激不尽
可以先确定broadcast receiver有没有收到东西
不太明白,你说要依据wifi状态决定switch button的开关对吧?那为啥要呼叫set函式? set是设值不是取值啊如果你的确就是需要透过你的程式开关wifi,那你只能跳到设定页让使用者手动开关了(Android Q以上)
我的用意是:在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里注册他吗?
我是在onStart注册的,所以动态跟静态注册不是二选一?是两个都要做?
是二选一没错,但建议可以在onReceive印log看看是否有收到任何讯息