No implementation found for method getWifiSignalStrength on channel rssi_plugin ( Flutter )

26 views Asked by At

#this is my rssi_plugin.dart for flutter

import 'dart:async';
import 'package:flutter/services.dart';

class RssiPlugin {
  static const MethodChannel _channel = MethodChannel('rssi_plugin');

  static Future<int> getWifiSignalStrength() async {
    try {
      print("Hello world 1");
      final int signalStrength = await _channel.invokeMethod('getWifiSignalStrength');
      return signalStrength;
    } catch (e) {
      print("Hello world 2");
      throw Exception('Failed to get Wi-Fi signal strength: $e');
    }
  }
}

#this is the android code which i write in my android plugin code

package com.example.rssi_plugin

import android.content.Context
import android.net.wifi.WifiInfo
import android.net.wifi.WifiManager
import androidx.annotation.NonNull
import io.flutter.embedding.engine.plugins.FlutterPlugin
import io.flutter.plugin.common.MethodCall
import io.flutter.plugin.common.MethodChannel
import io.flutter.plugin.common.MethodChannel.MethodCallHandler
import io.flutter.plugin.common.MethodChannel.Result

class RssiPlugin : FlutterPlugin, MethodCallHandler {
    private lateinit var channel: MethodChannel
    private lateinit var context: Context

    override fun onAttachedToEngine(@NonNull flutterPluginBinding: FlutterPlugin.FlutterPluginBinding) {
        print("Hello");
        channel = MethodChannel(flutterPluginBinding.binaryMessenger, "rssi_plugin")
        channel.setMethodCallHandler(this) // Add this line
        GeneratedPluginRegistrant.registerWith(flutterPluginBinding.getFlutterEngine().getPlugins().get(0)) // Update this line if needed
        context = flutterPluginBinding.applicationContext
    }

    override fun onMethodCall(@NonNull call: MethodCall, @NonNull result: Result) {
        print(call.method);
        if (call.method == "getWifiSignalStrength") {
            val wifiManager = context.getSystemService(Context.WIFI_SERVICE) as WifiManager?
            val wifiInfo: WifiInfo? = wifiManager?.connectionInfo
            val signalStrength = wifiInfo?.rssi ?: -1
            result.success(signalStrength)
        } else {
            result.notImplemented()
        }
    }

    override fun onDetachedFromEngine(@NonNull binding: FlutterPlugin.FlutterPluginBinding) {
        channel.setMethodCallHandler(null)
    }
}

while calling this method i am getting this always ( No implementation found for method getWifiSignalStrength on channel rssi_plugin )

can anyone please help me i can provide the all files, Thanks

It will not give any error instead will retrun a number at the place of zero

0

There are 0 answers