#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