TC75: EMDK service unstable / failure to create DataWedge profile

R Richard Venderbosch 3 years 6 months ago
45 1 0

Hello.
 
We are experiencing major problems with the EMDK service and the DataWedge service.
 
In our applications on the TC75 we are using some EMDK APIs, for example to create the DataWedge profile for barcode scanning, to set the system time, to disable the BT pairing dialogue and to install or upgrade APKs.
Sometimes, after a number of successful EMDK API calls, any further API call does not execute correctly anymore.
We then have to warm boot the TC75 to get EMDK API calls working again.
 
Another problem we recently see on TC75 devices here on our devices but also on customers devices, is that DataWedge profiles are sometimes not created successfully.
For example after a manual reset of the DataWedge profiles, the Velocity profile is sometimes not created again when the Velocity application is started.
 
To investigate these problems with a simple application I compiled the "ProfileDataCapture" sample (from Data Capture - Zebra Technologies Online Documentation) and tested it on my TC75.
After several times starting and leaving the sample application I could reproduce a permanent error.The application always displays "Profile initialization failed" when started.
In logcat I see these entries:
 
03-15 13:28:50.981 7319-7319/? D/com.symbol.emdk.emdkservice.barcode.SvcScanEventCallback: SvcScanEventCallback::barcodeManager
03-15 13:28:50.981 7319-7319/? D/dd:BT:: SvcBluetoothScanner::registerConnectionNotification
03-15 13:28:50.981 7319-7319/? D/dd:BT:: SvcBluetoothScanner::unregisterConnectionNotification
03-15 13:28:50.981 7319-7319/? D/com.symbol.emdk.emdkservice.EMDKService: The EMDKService was created.
03-15 13:28:50.981 7319-7319/? D/com.symbol.emdk.emdkservice.EMDKService: The AIDLProfileService was binded.
03-15 13:28:50.981 7319-7319/? D/com.symbol.emdk.emdkservice.MxServiceConnection: Binding Mx srvice
03-15 13:28:50.981 13335-13335/com.symbol.profiledatacapturesample1 D/com.symbol.emdk.EMDKServiceConnection: The EMDK Service will be connected soon (asynchronus call)!
03-15 13:28:50.991 7319-7319/? D/com.symbol.emdk.emdkservice.ProfileService: getVersion - Entering
03-15 13:28:50.991 7319-7319/? D/com.symbol.emdk.emdkservice.ProfileService: getVersion - Leaving
03-15 13:28:50.991 7319-7319/? D/EmdkService: EMDK Version=4.0.2.0
03-15 13:28:50.991 7319-7319/? D/MxVersionHandler: MxVersionHandler Constructor
03-15 13:28:50.991 945-945/? D/PhoneStatusBar: setSystemUiVisibility vis=0 mask=ffffffff oldVal=400 newVal=0 diff=400
03-15 13:28:50.991 945-945/? D/PhoneStatusBar: hiding the MENU button
03-15 13:28:51.001 13335-13335/com.symbol.profiledatacapturesample1 D/com.symbol.emdk.EMDKServiceConnection: The EMDK Service is now connected!
03-15 13:28:51.011 7319-8409/? D/com.symbol.emdk.emdkservice.ProfileService: initializeProfileService - starts
03-15 13:28:51.011 7319-8409/? D/com.symbol.emdk.emdkservice.ProfileHandler: ProfileHandler - Entering
03-15 13:28:51.032 7319-8409/? D/com.symbol.emdk.emdkservice.ProfileHandler: ProfileHandler - Leaving
03-15 13:28:51.032 7319-8409/? D/com.symbol.emdk.emdkservice.ProfileService: initializeProfileService - ends
03-15 13:28:51.062 13335-13335/com.symbol.profiledatacapturesample1 E/HAL: hw_get_module_by_class path = /system/lib/hw/gralloc.msm8960.so
03-15 13:28:51.092 7319-9849/? D/com.symbol.emdk.emdkservice.ProfileHandler: createProfile - Entering
03-15 13:28:51.092 7319-9849/? D/com.symbol.emdk.emdkservice.ProfileHandler: createProfile - profileName=DataCaptureProfile-1
03-15 13:28:51.092 7319-9849/? D/com.symbol.emdk.emdkservice.ProfileHandler: createProfile - profileNameCriteria.length=1
03-15 13:28:51.092 7319-9849/? D/com.symbol.emdk.emdkservice.ProfileHandler: profileNameCriteria.length>1 else block
03-15 13:28:51.092 7319-9849/? D/com.symbol.emdk.emdkservice.ProfileHandler: isBarcodePresentInProfile - Enetring
03-15 13:28:51.102 7319-9849/? D/com.symbol.emdk.emdkservice.ProfileHandler: isBarcodePresentInProfile - Before expr.evaluate
03-15 13:28:51.102 13335-13335/com.symbol.profiledatacapturesample1 I/ActivityManager: Timeline: Activity_idle id: android.os.BinderProxy@41d72b28 time:12936676
03-15 13:28:51.112 808-892/? I/ActivityManager: Displayed com.symbol.profiledatacapturesample1/.MainActivity: +188ms
03-15 13:28:51.122 7319-9849/? D/com.symbol.emdk.emdkservice.ProfileHandler: isBarcodePresentInProfile - After expr.evaluate
03-15 13:28:51.122 7319-9849/? D/com.symbol.emdk.emdkservice.ProfileHandler: isBarcodePresentInProfile - result!=null
03-15 13:28:51.122 7319-9849/? D/com.symbol.emdk.emdkservice.ProfileHandler: isBarcodePresentInProfile - After profileNode.getParentNode().getChildNodes()
03-15 13:28:51.122 7319-9849/? D/com.symbol.emdk.emdkservice.ProfileHandler: isBarcodePresentInProfile - Leaving
03-15 13:28:51.122 7319-9849/? D/com.symbol.emdk.emdkservice.ProfileHandler: isBarcodePresentInProfile=true
03-15 13:28:51.122 7319-9849/? D/com.symbol.emdk.emdkservice.ProfileHandler: isMxPresentInProfile - Enetring
03-15 13:28:51.122 7319-9849/? D/com.symbol.emdk.emdkservice.ProfileHandler: isMxPresentInProfile - Before expr.evaluate
03-15 13:28:51.142 7319-9849/? D/com.symbol.emdk.emdkservice.ProfileHandler: isMxPresentInProfile - After expr.evaluate
03-15 13:28:51.142 7319-9849/? D/com.symbol.emdk.emdkservice.ProfileHandler: isMxPresentInProfile - result!=null
03-15 13:28:51.142 7319-9849/? D/com.symbol.emdk.emdkservice.ProfileHandler: isMxPresentInProfile - After profileNode.getParentNode().getChildNodes()
03-15 13:28:51.142 7319-9849/? D/com.symbol.emdk.emdkservice.ProfileHandler: isMxPresentInProfile - Leaving
03-15 13:28:51.142 7319-9849/? D/com.symbol.emdk.emdkservice.ProfileHandler: >>>creating a profilecheck if profile is foundCreating a profile from XML only

Please Register or Login to post a reply

1 Replies

Y Yanis Dalabiras

Hello Richard, So no changes were made to the ProfileDataCapture sample code other than profile changes, and you were still able to duplicate this issue?

CONTACT
Can’t find what you’re looking for?