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
|
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.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