Für alle die Daten vom Scanner per Intent abrufen wollen:
1.)
Ich verwende diesen Broadcastreceiver: brsatalay.blogspot.com.tr/2014/10/delphi-android-broadcast-receiver.html
den ich wie folgt aktiviere (einmalig):
Delphi-Quellcode:
mxBreceiver.RegisterReceive;
mxBreceiver.Add('org.mein.intent.name');
die Komponente hat einen onIntent Event, den ich wie folgt definiert habe:
Delphi-Quellcode:
procedure TmxBCD.mxBreceiverReceive(Context: JContext; Intent: JIntent);
var
vInput:String;
begin
if ansisametext(JStringToString(intent.getAction), 'org.mein.intent.name') then begin
// jetzt haben wir etwas erhalten
vInput:=JStringToString(intent.getStringExtra(Stri ngToJString(DATAWEDGE_DATA_STRING)));
vInput:=trim(vInput);
dolog('*receive*'+vinput+'*');
// jetzt prüfen, ist das was angekommen ist eine Funktion oder muss ich ein TExtfeld füllen?
end else begin
doLog('*unknown_action*'+JStringToString(Intent.ge tAction)+'*');
end;
end;
Damit das ganze funktioniert musst Du die androidmanifest
xml Datei in deinem Projektverzeichniss wie folgt erweitern:
Code:
...
<activity android:name="
com.embarcadero.firemonkey.FMXNative Activity"
android:label="%activityLabel%"
android:configChanges="orientation|keyboard|keyboa rdHidden|screenSize"
android:launchMode="singleTask">
<!-- Tell NativeActivity the name of our .so -->
<meta-data android:name="android.app.lib_name"
android:value="%libNameValue%" />
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<action android:name="org.mein.intent.name" /> <!-- HIER die Erweiterung, Rest so belassen -->
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
...
So nun zum Problem bei Datawedge, in Datawedge ein Profil anlegen und nur folgendes aktivieren:
1. bei Verbundene Anwendung wählst Du deine app aus
2. Barcode-Eingabe = Aktiviert
3. MSR Eingabe = Aktiviert
4. Intent Ausgabe = Aktiviert
4.1 Intent-Aktion = org.mein.intent.name
4.2 Intent-Kategorie = LEER LASSEN, nichts eintragen, ist ein Bug von Datawedge
4.3 Intent-Übertragung = Intent Senden
Das wars, bei mir klappt es jetzt hervorragend. Mit dem Edit-Feld hatte ich so meine Probleme, da manchmal der Barcode abgeschnitten wurde usw.
Ich hoffe, ich konnte Dir helfen, kannst ja in deinen Beitrag reinsetzen, damit es auch andere Finden können