0

I want to make an app that displays the current rssi, with live updates. So far i've go this:

override fun onCreateView(
    inflater: LayoutInflater, container: ViewGroup?,
    savedInstanceState: Bundle?
): View? {

  _binding = FragmentFirstBinding.inflate(inflater, container, false)
    LocalBroadcastManager.getInstance(requireContext()).registerReceiver(myRssiChangeReceiver, IntentFilter(WifiManager.RSSI_CHANGED_ACTION))
  return binding.root

}

val myRssiChangeReceiver = object : BroadcastReceiver() {
    override fun onReceive(p0: Context?, p1: Intent?) {
        val wifiMan : WifiManager = activity?.getSystemService(Context.WIFI_SERVICE) as WifiManager
        wifiMan.startScan()
        val newRSSI : Int = wifiMan.connectionInfo.rssi
        binding.wifiData.text = newRSSI.toString()
    }
}

But it doesn't display anything.

  • Have you declared the permission "android.Manifest.permission.ACCESS_WIFI_STATE" in your `AndroidManifest.xml` ? – Ankur Nov 09 '22 at 04:09
  • If you are not getting callback inside `onReceive`, then you may like to check this: https://stackoverflow.com/a/11439616 – Ankur Nov 09 '22 at 04:11
  • @Ankur answering both your questions: Yes, i did add the permission, and I've already tried the solution from that thread. – Feldmarshall Nov 09 '22 at 07:48

0 Answers0