Trabalhar com intents no Firemonkey

Android

Delphi

FireMonkey

10/07/2020

Olá amigos, tudo bom?

Eu estou com uma dúvida em uma app que estou desenvolvendo, talvez vocês possa me ajudar.
Trata-se de uma app de venda de passagens BP-e que rodará em um dispositivo móvel.
Uma maquina de cartão de crédito da Cielo. A Cielo LIO
Ela tem uma impressora acoplada, mas é impossível acessa-la via Bluetooth ou USB ou COM.
No site de suporte ao desenvolvedor da Cielo há a seguinte informação:

1) Para realizar a integração é necessário definir um contrato de resposta com a LIO, no modelo abaixo:

<activity android:name=".ResponseActivity">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data
android:host="response"
android:scheme="order" />
</intent-filter>
</activity>

2) Para realizar a impressão, basta montar uma URL com o seguinte formato:
lio://print?request=$base64&urlCallback=order://response

Com essas informações eu desenvolvi a minha aplicação enviando intents para LIO com os comandos e os textos a serem impressos.
Estou consegundo imprimir, porém, quando eu imprimo, a aplicação da LIO que roda em segundo plano, responsável por receber os comandos e executar a impressão, abre e não fecha mais e sobrepõe a minha aplicação.

Eu estou usando esta rotina para imprimir:

Base64 := MinhaEncodeBase64(BytesOf(scheme));
Uri := 'lio://print?request='+Base64+'&urlCallback=order://response';
{$IFDEF ANDROID}

Imprime1 := TJIntent.Create;
Imprime1.setType(StringToJString('text/pas'));
Imprime1.setAction(TJIntent.JavaClass.ACTION_VIEW);
Imprime1 := TJIntent.JavaClass.init(TJIntent.JavaClass.ACTION_VIEW,
TJnet_Uri.JavaClass.parse(StringToJString(TIdURI.URLEncode(uri))));
Imprime1.setData(StrToJURI(uri));
SharedActivity.startActivity(Imprime1);

{$ENDIF}


Por acaso alguém saberia dizer o que está errado?
Ficaria muito grato se alguém pudesse me dar uma ajuda.
De qualquer forma,
Desde já agradeço.

Marcio Dias Ramos.
Marcio Ramos

Marcio Ramos

Curtidas 0
POSTAR