Skip to content
Open
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
adjust android method to work like a plugin, not an app
  • Loading branch information
Codel1417 committed Jan 25, 2025
commit bd5324e0797b253e7b44591b7be7e7ba9183df44
Original file line number Diff line number Diff line change
Expand Up @@ -8,26 +8,26 @@ import androidx.annotation.NonNull
import io.flutter.embedding.engine.plugins.FlutterPlugin
import io.flutter.plugin.common.EventChannel
import io.flutter.plugin.common.MethodChannel
import io.flutter.plugin.common.MethodChannel.MethodCallHandler
import io.flutter.plugin.common.MethodChannel.Result
import io.flutter.plugin.common.MethodCall

/** PedometerPlugin */
class PedometerPlugin : FlutterPlugin {
class PedometerPlugin : FlutterPlugin, MethodCallHandler {
private lateinit var stepDetectionChannel: EventChannel
private lateinit var stepCountChannel: EventChannel
override fun configureFlutterEngine(@NonNull flutterEngine: FlutterEngine) {
super.configureFlutterEngine(flutterEngine)
MethodChannel(flutterEngine.dartExecutor.binaryMessenger, "com.example.pedometer").setMethodCallHandler {
call, result ->
val context = flutterPluginBinding.applicationContext
val sensorManager = context.getSystemService(Context.SENSOR_SERVICE) as SensorManager
if (call.method == "isStepDetectionSupported"){
val stepDetectionSensor = sensorManager.getDefaultSensor(Sensor.TYPE_STEP_DETECTOR)
result.success(stepDetectionSensor != null)

}
else if (call.method == "isStepCountSupported"){
val stepCountSensor = sensorManager.getDefaultSensor(Sensor.TYPE_STEP_COUNTER)
result.success(stepCountSensor != null)
}
private lateinit var methodChannel : MethodChannel;
private lateinit var sensorManager : SensorManager;

override fun onMethodCall(@NonNull call: MethodCall, @NonNull result: Result) {
if (call.method == "isStepDetectionSupported"){
val stepDetectionSensor = sensorManager.getDefaultSensor(Sensor.TYPE_STEP_DETECTOR)
result.success(stepDetectionSensor != null)

}
else if (call.method == "isStepCountSupported"){
val stepCountSensor = sensorManager.getDefaultSensor(Sensor.TYPE_STEP_COUNTER)
result.success(stepCountSensor != null)
}
}
override fun onAttachedToEngine(@NonNull flutterPluginBinding: FlutterPlugin.FlutterPluginBinding) {
Expand All @@ -41,11 +41,18 @@ class PedometerPlugin : FlutterPlugin {
/// Set handlers
stepDetectionChannel.setStreamHandler(stepDetectionHandler)
stepCountChannel.setStreamHandler(stepCountHandler)

// setup method channel
val context = FlutterPlugin.FlutterPluginBinding.applicationContext
sensorManager = context.getSystemService(Context.SENSOR_SERVICE) as SensorManager
methodChannel = MethodChannel(flutterPluginBinding), "com.example.pedometer")
methodChannel.setMethodCallHandler(this)
}

override fun onDetachedFromEngine(@NonNull binding: FlutterPlugin.FlutterPluginBinding) {
stepDetectionChannel.setStreamHandler(null)
stepCountChannel.setStreamHandler(null)
methodChannel.setMethodCallHandler(null)
}

}