Trabalhar com intents no Firemonkey

10/07/2020

0

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

Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar