Utilizando Intents
Nesta seção veremos:
- Envio de dados ao IntentDigitalHub
- Retorno dos processamentos feitos pelo IntentDigitalHub
Agora que já tivemos uma breve definição de Intent, vamos ver como utilizar no nosso contexto.
flowchart LR
subgraph idh [Intent Digital Hub]
direction TB
a2(fa:fa-android Activity IDH)
e1(fa:fa-file-code-o E1_Android)
end
subgraph aut [Automação]
a1(fa:fa-android Activity Automação)
end
a2 --> e1
a1 -->| Intent Envio | a2
a2 -->| Intent Retorno | a1
e1 --> a2
class a1,a2,e1 mOp
class idh,aut msubgraph
Envio
Vamos fazer um exemplo de instância de um Intent com caminho para o módulo da Impressora Térmica. O conteúdo que será enviado (mais informações na seção Utilizando Payloads ) deve ser adicionado ao putExtra
com a chave comando.
Exemplo
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
try {
String TERMICA = "com.elgin.e1.digitalhub.TERMICA";
Intent intent = new Intent(TERMICA);
intent.putExtra("comando", "[{...}]");
startActivityForResult(intent, 1);
} catch (Exception e) {
Toast.makeText(getApplicationContext(), e.getMessage(), Toast.LENGTH_LONG).show();
}
}
Retorno
Após realizar o envio, vamos obter o retorno. São 2 passos:
- Implementar a sobrecarga da função
onActivityResult()
- Obter o valor de
getStringExtra
com a chave retorno com o valor de Utilizando Payloads com o Array (Json) de retorno dos métodos invocados
Vamos realizar a implementação da sobrecarga do método onActivityResult()
.
Exemplo
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
try {
String retorno = data.getStringExtra("retorno");
Toast.makeText(getApplicationContext(), "Retorno = " + retorno, Toast.LENGTH_LONG).show();
} catch (Exception e) {
Toast.makeText(getApplicationContext(), e.getMessage(), Toast.LENGTH_LONG).show();
}
}
Agora com o conteúdo do retorno, basta realizar os devidos tratamentos para utilizar em sua Automação.
Entenda como funciona o Payloads