Attempt to change the display's "Touch Mode" by MX/EMDK TouchMgr crashes on TC75

// Expert user has replied.
R Richard Venderbosch 3 years 6 months ago
18 1 0

In our application on TC75 we want to set the display's Touch Mode to "Stylus and Finger" or "Glove and Finger" depending on the requests by of our the customers.
Our application calls the EMDK API function this.emdkProfileManager.processProfile with this XML string as parameter:
 
String[] profileParamString=new String[1];
 
profileParamString[0]=
   ""   +""   +""   +""   +""   +""   +"";
 
But on my TC75 this immediately generates some severe problems on Linux device level (mouse and touchscreen) and with the MxStatsCSPService service:
 
07-13 12:57:01.290 2117-2127/? D/com.symbol.emdk.emdkservice.ProfileHandler: createProfile - mxProfile =
07-13 12:57:01.290 2270-2270/? I/MxStats: MxFrameworkHelper:  mContextFrameworkService=android.app.Application@41918968
07-13 12:57:01.290 2270-2270/? W/ContextImpl: Implicit intents with startService are not safe: Intent { act=com.symbol.osx.proxyframework.IMultiUserManager } android.content.ContextWrapper.bindService:517 com.symbol.mxmf.csp.stats.ConnectToService.bindProxyServices:59 com.symbol.mxmf.csp.stats.MxStatsCSPService.onCreate:128
07-13 12:57:01.300 2503-2514/? D/TouchMngrCSPService: ITouchModeService.class.getName() = com.android.settings.touch.ITouchModeService
07-13 12:57:01.300 2503-2514/? W/ContextImpl: Implicit intents with startService are not safe: Intent { act=com.android.settings.touch.ITouchModeService } android.content.ContextWrapper.bindService:517 com.symbol.mxmf.csp.touchmgr.TouchMngrCSPService.doBindService:464 com.symbol.mxmf.csp.touchmgr.TouchMngrCSPService.access$3:457
07-13 12:57:01.300 2503-2514/? D/TouchModeService: Set To Stylus and Finger using: persist.sys.touch_mode flag
07-13 12:57:01.300 2503-2514/? W/ContextImpl: Calling a method in the system process without a qualified user: android.app.ContextImpl.bindService:1616 android.content.ContextWrapper.bindService:517 com.symbol.mxmf.csp.touchmgr.TouchMngrCSPService.doBindService:464 com.symbol.mxmf.csp.touchmgr.TouchMngrCSPService.access$3:457 com.symbol.mxmf.csp.touchmgr.TouchMngrCSPService$2.processXML:284
07-13 12:57:01.300 810-1207/? W/ActivityManager: Unable to start service Intent { act=com.android.settings.touch.ITouchModeService } U=0: not found
07-13 12:57:01.340 810-919/? I/EventHub: Removing device '/dev/input/mouse0' due to inotify event
07-13 12:57:01.340 2117-2127/? D/com.symbol.emdk.emdkservice.ProfileHandler: createProfile - mxResponse =
07-13 12:57:01.340 2117-2127/? D/com.symbol.emdk.emdkservice.ProfileHandler: createProfile - barcodePresent = false
07-13 12:57:01.340 2117-2127/? D/com.symbol.emdk.emdkservice.ProfileHandler: createProfile - barcodePresentInCriteria = true
07-13 12:57:01.340 2117-2127/? D/com.symbol.emdk.emdkservice.ProfileHandler: createProfile - mxPresent = true
07-13 12:57:01.340 2117-2127/? D/com.symbol.emdk.emdkservice.ProfileHandler: createProfile - mxPresentInCriteria = true
07-13 12:57:01.340 2117-2127/? D/com.symbol.emdk.emdkservice.ProfileHandler: createProfile - Leaving
07-13 12:57:01.340 2270-2270/? I/MxStatsCSPService: onServiceConnected
07-13 12:57:01.340 2270-2270/? I/MxStatsCSPService: onServiceConnected: unbindService
07-13 12:57:01.340 2270-2270/? I/MxStatsCSPService: onServiceConnected: stopSelf
07-13 12:57:01.350 2101-2101/? D/TLmEZebraExecSettings: EMDK profile manager result CHECK_XML
07-13 12:57:01.360 2270-2270/? I/MxStatsCSPService: onServiceConnected
07-13 12:57:01.370 810-919/? I/EventHub: Removing device atmel_mxt_ts T100 touchscreen due to epoll hang-up event.
07-13 12:57:01.370 810-919/? I/EventHub: Removed device: path=/dev/input/event1 name=atmel_mxt_ts T100 touchscreen id=15 fd=190 classes=0x15
07-13 12:57:01.370 2270-2270/? I/MxStatsCSPService: onServiceConnected: unbindService
07-13 12:57:01.370 2270-2270/? I/MxStatsCSPService: onServiceConnected: stopSelf
07-13 12:57:01.420 810-919/? I/InputReader: Device removed: id=15, name='atmel_mxt_ts T100 touchscreen', sources=0x00005103
07-13 12:57:01.420 810-919/? D/InputReader: Could not retrieve current multitouch slot index.  status=-1
07-13 12:57:01.420 810-919/? I/EventHub: Removing device '/dev/input/event1' due to inotify event
 
What is wrong with the XML string?
How can we fix this problem?
 
The very same application runs successfully on a TC55.
 
Some details about my TC75:
 
D/TLmEDeviceSystemInfo: Android version '4.4.3'
D/TLmEDeviceSystemInfo: Boot loader 'B08-23257-D3'
D/TLmEDeviceSystemInfo: Device 'TC75'
/TLmEDeviceSystemInfo: Fingerprint 'Zebra/TC75/TC75:4.4.3/01-23257-K-14-04-00-MV/eng.us0h00.20151015.190943:user/release-keys'
D/TLmEDeviceSystemInfo: Build Id '01-23257-K-14-04-00-MV'
D/TLmEDeviceSystemInfo: Manufacturer 'Zebra Technologies'
D/TLmEDeviceSystemInfo: Model 'TC75'
D/TLmEDeviceSystemInfo: Product 'TC75'
D/TLmEDeviceSystemInfo: Kernel version '3.4.0'
D/TLmEDeviceSystemInfo: Phone serial number '15160522502103'
D/TLmEDeviceSystemInfo: Phone ANDROID ID '4dbd6b81113caf89'
D/TLmEDeviceSystemInfo: Phone type '1'
D/TLmEDeviceSystemInfo: Phone device Id (IMEI) '354176060085537'

Please Register or Login to post a reply

1 Replies

P Pietro Francesco Maggi

Hi Richard,
this works for me if I have a TouchMgr profile, with the same "profilename" you're referencing in the EMDKConfig.xml file included in the asset folder of the application

~Pietro

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