AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Android: OnNewIntent implementieren

Ein Thema von DeddyH · begonnen am 21. Jul 2015 · letzter Beitrag vom 24. Mär 2016
Antwort Antwort
microtronx

Registriert seit: 8. Mär 2005
Ort: Tapfheim
55 Beiträge
 
Delphi 2010 Enterprise
 
#1

AW: Android: OnNewIntent implementieren

  Alt 23. Mär 2016, 10:51
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
Yusuf Zorlu
yusuf.zorlu@microtronx.com

Meine Arbeit ist so geheim ... ich habe selbst keine Ahnung was ich überhaupt mache!
  Mit Zitat antworten Zitat
microtronx

Registriert seit: 8. Mär 2005
Ort: Tapfheim
55 Beiträge
 
Delphi 2010 Enterprise
 
#2

AW: Android: OnNewIntent implementieren

  Alt 24. Mär 2016, 09:01
Noch ein Hinweis, innerhalb der mxBreceiverReceive müssen alle Verarbeitungen in einem Thread ausgeführt werden, sonst gibt es Probleme:

Delphi-Quellcode:
procedure TmxBCD.mxBreceiverReceive(Context: JContext; Intent: JIntent);
begin
    tThread.CreateAnonymousThread(procedure begin
        internal_mxBreceiverReceive(Context, Intent);
    end).start;
end;

procedure TmxBCD.internal_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(StringToJString(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.getAction)+'*');
  end;
end;
Yusuf Zorlu
yusuf.zorlu@microtronx.com

Meine Arbeit ist so geheim ... ich habe selbst keine Ahnung was ich überhaupt mache!
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:46 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz