feat: add BroadcastReceiver and EventChannel for scanner
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -1,5 +1,45 @@
|
||||
package com.example.pad_scanner
|
||||
|
||||
import android.content.BroadcastReceiver
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
import android.content.IntentFilter
|
||||
import io.flutter.embedding.android.FlutterActivity
|
||||
import io.flutter.plugin.common.EventChannel
|
||||
|
||||
class MainActivity : FlutterActivity()
|
||||
class MainActivity : FlutterActivity() {
|
||||
|
||||
override fun configureFlutterEngine(flutterEngine: io.flutter.embedding.engine.FlutterEngine) {
|
||||
super.configureFlutterEngine(flutterEngine)
|
||||
|
||||
EventChannel(flutterEngine.dartExecutor.binaryMessenger,
|
||||
"com.example.pad_scanner/scan")
|
||||
.setStreamHandler(object : EventChannel.StreamHandler {
|
||||
private var receiver: BroadcastReceiver? = null
|
||||
|
||||
override fun onListen(arguments: Any?, events: io.flutter.plugin.common.EventChannel.EventSink?) {
|
||||
if (events == null) return
|
||||
|
||||
receiver = object : BroadcastReceiver() {
|
||||
override fun onReceive(context: Context, intent: Intent) {
|
||||
val barcode = intent.getStringExtra("scannerdata") ?: return
|
||||
events.success(mapOf(
|
||||
"barcode" to barcode,
|
||||
"codeType" to "UNKNOWN"
|
||||
))
|
||||
}
|
||||
}
|
||||
|
||||
val filter = IntentFilter("com.android.server.scannerservice.broadcast")
|
||||
registerReceiver(receiver, filter)
|
||||
}
|
||||
|
||||
override fun onCancel(arguments: Any?) {
|
||||
receiver?.let {
|
||||
unregisterReceiver(it)
|
||||
receiver = null
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user