zebra_emdk_plugin 0.2.0
zebra_emdk_plugin: ^0.2.0 copied to clipboard
A Flutter plugin for Zebra Android devices using the EMDK SDK.
0.2.0 #
Breaking changes
-
Android — modular handler architecture: The monolithic
ZebraEmdkPlugin.kt(single class implementing all EMDK features) has been replaced with dedicated handler classes, each owning its own MethodChannel and EventChannel:EmdkManagerHandler— EMDK lifecycleBarcodeManagerHandler— scanner discovery, read control, config, and data eventsNotificationManagerHandler— notification device discovery and triggeringProfileManagerHandler— MX profile processing and OEM content-provider queriesExtensions.kt— shared Kotlin helpersZebraEmdkPlugin.ktis now a thin entry-point that delegates toEmdkManagerHandler
-
Dart — service layer renamed and restructured: All service files have been renamed and the channel naming convention changed:
emdk_manager_service.dart→emdk_manager.dart(classEmdkManagerService→EmdkManager)barcode_manager_service.dart→barcode_manager.dart(classBarcodeManagerService→BarcodeManager)notification_manager_service.dart→notification_manager.dart(classNotificationManagerService→NotificationManager)profile_manager_service.dart→profile_manager.dart(classProfileManagerService→ProfileManager)scanner_service.dartremoved — scanner operations (enableRead,disableRead,initScanner,deinitScanner,getConfig,setConfig,onStatus,onData) now live directly onBarcodeManagernotification_device_service.dartremoved — notification device operations (initDevice,deinitDevice,notify,getDeviceInfo) now live directly onNotificationManageroem_info_service.dartremoved — OEM queries now exposed throughProfileManager.resolveCursorUri(uri)andProfileManager.requestServicePermission(uri)platform_service_base.dartreplaced byzep_service_base.dart(ZepServiceBase) with new channel naming:zep/methods/<handler>andzep/events/<handler>
-
BarcodeManagerAPI changes:setScannerTypeByFriendlyName(name)→initScanner(name)dispose()removed — usedeinitScanner()- New method:
getConnectedScanners()— returns only currently-connected scanners onStatusandonDatastreams moved fromScannerServicetoBarcodeManager
-
NotificationManagerAPI changes:setNotificationDeviceByFriendlyName(name)→initDevice(name)dispose()removed — usedeinitDevice()getNotificationDeviceInfo()→getDeviceInfo()- New method:
getConnectedDevices()— returns only currently-connected notification devices notify(command)moved fromNotificationDeviceServicetoNotificationManager
-
ProfileManagerAPI changes:processProfileAsync(profileName, xmlData)→processProfileAsync(characteristics)— takes the XML characteristics string directly; the profile wrapper and name are now generated internally on the native side- New method:
requestServicePermission(uri)— explicitly request access to a content-provider URI - New method:
resolveCursorUri(uri)— query any Zebra OEMinfo content-provider URI directly
New features
- Profile processing queue (
ProfileManagerHandler): MX profiles are now processed through a serialisedLinkedHashMapqueue. ConcurrentprocessProfileAsynccalls no longer race — each profile waits for the previous one to finish before being submitted toprocessProfileAsyncon the native EMDK.
Example app
- Renamed from
ZebraEMDK/zebra_emdk.darttoEmdk/emdk.dart - EMDK now auto-initialises in
initState()instead of requiring a manual button press - Dark-mode UI redesign with Material 3
- Dispose is now async (
_disposeEmdk) onProfileDatastream is now listened to in the examplecontent_uris.dartandmx_profiles.dartcorrectly moved from the plugin package into the example app
0.1.0 #
- Initial release of
zebra_emdk_plugin. - EMDK Manager: initialize and listen for open/close events.
- Barcode Manager: enumerate supported scanners, select scanner by friendly name, listen for connection changes.
- Scanner: initialize, enable/disable read, get/set configuration (with full decoder params), listen for scan data and status events.
- Notification Manager: enumerate supported notification devices, select device by friendly name.
- Notification Device: initialize, trigger LED, beep, and vibrate notifications.
- Profile Manager: initialize, apply profiles asynchronously via
processProfile, and listen for results. - OEM Info: read Bluetooth MAC, serial number, product model, Wi-Fi MAC, peripheral battery info, and peripheral device info.