SparkOut wrote: ↑Sun Sep 23, 2018 11:01 am
There is a thread that mentioned one trick but not a complete solution. Whether it still applies with current versions of Android and/or LC i don't know.
Yes I 'm facing the same issue since long time (Android 5.1) and other devices. I thought that with LC 9, Android 7 and a new device it would be solved.
I start to think that the only solution is to use the "Android intent" system.
This option is available through the settings of the Zebra TC20.
Someone could write such thing using Infinite Livecode ?
https://livecode.com/infinite-livecode-an-example/
Here is the doc about the intent parameters :
Intent Overview
The core components of an Android application (its activities, services, and broadcast receivers) are activated by
intents. An intent is a bundle of information (an Intent object) describing a desired action - including the data to be
acted upon, the category of component that should perform the action, and other pertinent instructions. Android
locates an appropriate component to respond to the intent, launches a new instance of the component if one is
needed, and passes it the Intent object.
Components advertise their capabilities, the kinds of intents they can respond to, through intent filters. Since the
system must learn which intents a component can handle before it launches the component, intent filters are
specified in the manifest as <intent-filter> elements. A component may have any number of filters, each one
describing a different capability. For example, if the manifest contains the following:
Code: Select all
<intent-filter . . . >
<action android:name=”android.intent.action.DEFAULT” />
<category android:name=”android.intent.category.MAIN” />
</intent-filter>
In the Intent output plug-in configuration, the Intent action would be:
Code: Select all
android.intent.category.DEFAULT
and the Intent category would be:
android.intent.category.MAIN.
The Intent delivery option allows the method by which the intent is delivered to be specified. The delivery
mechanisms are Send via startActivity, Send via startService or Broadcast intent.
The decode related data added to the Intent’s bundle can be retrieved using the Intent.getStringExtra() and
Intent.getSerializableExtra() calls, using the following String tags:
• String LABEL_TYPE_TAG = “com.symbol.emdk.datawedge.label_type”;
• String contains the label type of the bar code.
• String DATA_STRING_TAG = “com.symbol.emdk.datawedge.data_string”;
• String contains the output data as a String. In the case of concatenated bar codes, the decode data is
concatenated and sent out as a single string.
• String DECODE_DATA_TAG = “com.symbol.emdk.datawedge.decode_data”;
• Decode data is returned as a list of byte arrays. In most cases there will be one byte array per decode.
For bar code symbologies that support concatenation e.g. Codabar, Code128, MicroPDF, etc., the
decoded data is stored in multiple byte arrays (one byte array per bar code). Clients can get data in
each byte array by passing an index.
Most scanning applications might want the user to be able to decode data and for that decode data to be sent to
the *current* activity but not necessarily displayed. If this is the case, then the activity needs to be marked as
‘singleTop’ in its AndroidManifest.xml file. If your activity is not defined as singleTop, then on every decode, the
system will create another copy of your Activity and send the decode data to this second copy.