Intenções do Android
Neste artigo, exploraremos o conceito de Android Intents em detalhes e discutiremos sua importância no desenvolvimento do Android.
No Android , uma intenção é um objeto de mensagem que solicita uma ação de outro componente, seja no mesmo aplicativo ou em outro aplicativo.
Os intents podem ser usados para iniciar Activities, Services e Broadcast Receivers, bem como para passar dados entre eles.
A intenção do Android consiste em uma ação, um tipo de dados e, opcionalmente, dados e informações de categoria.
Ações de intenção do Android
Ao criar um Intent, você deve especificar uma ação que descreva a operação que deseja executar, como “ visualizar ”, “ editar ” ou “ enviar ”.
A ação informa ao sistema Android que tipo de componente deve lidar com o Intent.
Por exemplo, se você tiver um Intent com a ação “ ACTION_VIEW ”, significa que deseja exibir dados para o usuário, como uma página da web, imagem ou vídeo.
O Android tem algumas ações predefinidas, mas você também pode criar ações personalizadas para seu aplicativo.
Aqui estão algumas das ações mais comumente usadas:
Ações | Visão geral |
ACTION_VIEW | Exibir dados para o usuário, como uma página da Web, imagem ou vídeo. |
ACTION_EDIT | Edite um item de dados existente. |
ACTION_SEND | Envie dados para outro aplicativo ou serviço. |
ACTION_DIAL | Iniciar uma chamada telefônica. |
ACTION_CALL | Ligue para um número de telefone específico. |
ACTION_WEB_SEARCH | Faça uma pesquisa na web. |
ACTION_PICK | Escolha um item de dados, como um contato ou foto, em uma lista. |
ACTION_GET_CONTENT | Recupere dados de outro aplicativo, como uma foto ou documento. |
ACTION_BATTERY_CHANGED | Ação de transmissão indicando que o nível da bateria mudou. |
ACTION_POWER_CONNECTED | Ação de transmissão indicando que o dispositivo foi conectado a uma fonte de alimentação. |
ACTION_POWER_DISCONNECTED | Ação de transmissão indicando que o dispositivo foi desconectado de uma fonte de alimentação. |
Dados de intenção do Android
O componente de dados é onde você especifica em que o Intent irá operar, como um URI, caminho de arquivo ou URI do provedor de conteúdo.
Ele é usado para identificar os dados específicos sobre os quais o Intent deve agir.
Por exemplo, se você criar um Intent com a ação “ ACTION_VIEW ” e um URI “ data ” de uma página da web, ele abrirá a página da web no navegador da web padrão.
Categoria de intenção do Android
O componente de categoria é opcional e pode ser usado para descrever melhor o propósito da intenção, como “ padrão ” ou “ alternativa ”.
Categorias são strings que indicam informações adicionais sobre o Intent.
Por exemplo, se você criar um Intent com a ação “ ACTION_VIEW ” e a categoria “ CATEGORY_BROWSABLE ”, ele pode ser manipulado por um navegador capaz de navegar na web.
Algumas das categorias mais usadas são definidas abaixo:
Categorias | Visão geral |
CATEGORY_DEFAULT | Indica que uma ação padrão regular deve ser executada para essa intenção. |
CATEGORY_BROWSABLE | Indica que a intenção pode ser manipulada por um navegador da web. |
CATEGORY_LAUNCHER | Esta categoria indica que a intenção é uma atividade que deve ser exibida no iniciador. |
CATEGORY_ALTERNATIVE | Nesta categoria, a intenção representa uma ação alternativa à intenção original. |
CATEGORY_TAB | Essa categoria implica que a atividade representa uma guia em uma atividade com várias guias. |
CATEGORY_VOICE | O reconhecimento de voz pode ser usado para lidar com essa intenção. |
CATEGORY_APP_EMAIL | Define que a intenção deve ser tratada por um cliente de e-mail . |
CATEGORY_APP_MESSAGING | Esta categoria designa que a intenção deve ser tratada por um cliente de mensagens. |
CATEGORY_APP_CONTACTS | Especifica que a intenção deve ser tratada por um aplicativo de contatos. |
CATEGORY_APP_CALENDAR | Designa que a intenção deve ser tratada por um aplicativo de calendário. |
Os componentes de ação, dados e categoria de um Intent são opcionais. Intenções podem conter um ou mais componentes, e cada componente pode ter seus próprios dados, ação e atributos de categoria.
Uma intenção também pode incluir dados extras na forma de pares chave-valor, que podem ser usados para passar informações adicionais entre os componentes.
Além da ação, dados e categoria, uma intenção no Android também pode conter extras e sinalizadores.
Extras de intenção do Android
Extras no Android são pares chave-valor que permitem que dados adicionais sejam passados entre os componentes.
A chave é uma string e o valor pode ser qualquer tipo de dados básico.
Os extras são comumente usados para passar dados para uma atividade quando ela é iniciada, por exemplo, uma intenção de iniciar uma atividade exibindo uma mensagem pode conter um extra com a chave “mensagem” e o valor “ Alô, Mundo! “.
Sinalizadores de intenção do Android
Os sinalizadores no Intent do Android são valores inteiros usados para modificar o comportamento de um Intent.
Usando OR bit a bit , vários sinalizadores podem ser combinados para definir mais de um sinalizador por vez.
Os sinalizadores desempenham um papel crucial no controle de como uma Activity é iniciada ou como um Intent é tratado.
Algumas das bandeiras disponíveis são:
Bandeiras | Visão geral |
FLAG_ACTIVITY_NEW_TASK | Cria uma nova tarefa para a atividade se não existir nenhuma tarefa para manipulá-la. |
FLAG_ACTIVITY_CLEAR_TASK | Limpa todas as tarefas existentes para a atividade antes de iniciá-la em uma nova tarefa. |
FLAG_ACTIVITY_SINGLE_TOP | Se a atividade já estiver no topo da pilha de tarefas, ela não será iniciada novamente e o método onNewIntent() será chamado. |
FLAG_ACTIVITY_CLEAR_TOP | Limpa todas as atividades existentes sobre a atividade antes de iniciá-la. |
FLAG_ACTIVITY_NO_HISTORY | Garante que a atividade não será armazenada na pilha de atividades, de modo que quando o usuário pressionar o botão Voltar, a atividade não será exibida. |
FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS | Exclui a atividade da lista de aplicativos usados recentemente. |
FLAG_ACTIVITY_BROUGHT_TO_FRONT | Traz a atividade para a frente da pilha de tarefas, independentemente de já estar em execução ou não. |
FLAG_ACTIVITY_FORWARD_RESULT | Permite que a atividade passe um código de resultado de volta para a atividade que a iniciou. |
FLAG_ACTIVITY_PREVIOUS_IS_TOP | Se a atividade que está sendo iniciada já estiver em execução, ela será trazida para a frente da pilha em vez de iniciar uma nova instância. |
FLAG_ACTIVITY_REORDER_TO_FRONT | Traz a atividade para a frente da pilha de tarefas, mas não cria uma nova instância se ela já estiver em execução. |
Tipos de intenções
Existem dois tipos de intenções no Android: intenções explícitas e intenções implícitas.
Intenções explícitas
Uma intenção explícita inicia um componente específico dentro do mesmo aplicativo.
Por exemplo, você pode usá-lo para iniciar uma atividade específica no aplicativo.
Exemplo de código para criar um Intent explícito:
Intent intent = new Intent(MainActivity.this, SecondActivity.class); startActivity(intent);
intenções implícitas
Um componente fora do aplicativo atual é iniciado com uma intenção implícita.
Por exemplo, pode ser usado para iniciar um navegador da web para visualizar um URL específico.
O código a seguir cria uma intenção implícita:
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://www.example.com")); startActivity(intent);
Filtros de intenção do Android
Os filtros de intenção do Android definem os recursos dos componentes e os tipos de intenções aos quais eles podem responder.
Os componentes podem ser configurados para lidar com ações específicas, tipos de dados e categorias.
O filtro de intenção permite que um aplicativo disponibilize seus componentes para outros aplicativos e permita que eles interajam com eles.
Aqui está um exemplo de como criar um filtro de intenção:
<activity android:name=".SecondActivity"> <intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <data android:scheme="http" /> <data android:scheme="https" /> </intent-filter> </activity>
Neste exemplo, estamos criando um filtro de intenção para a SecondActivity que especifica que ela pode lidar com esquemas de dados “ http ” e “ https ”.
Aqui está um exemplo de intenção:
Lançar uma atividade com extras:
Intent intent = new Intent(this, MyActivity.class); intent.putExtra("key", "value"); startActivity(intent);
Abrindo uma página da web:
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://www.example.com")); startActivity(intent);
Enviando um e-mail:
Intent intent = new Intent(Intent.ACTION_SENDTO, Uri.fromParts("mailto", "[email protected]", null)); intent.putExtra(Intent.EXTRA_SUBJECT, "Subject"); intent.putExtra(Intent.EXTRA_TEXT, "Message body"); startActivity(Intent.createChooser(intent, "Send email"));
Fazendo uma chamada telefônica:
Intent intent = new Intent(Intent.ACTION_DIAL, Uri.parse("tel:1234567890")); startActivity(intent);
Abrindo uma localização no mapa:
Uri gmmIntentUri = Uri.parse("geo:0,0?q=1600+Amphitheatre+Parkway,+Mountain+View,+California"); Intent intent = new Intent(Intent.ACTION_VIEW, gmmIntentUri); intent.setPackage("com.google.android.apps.maps"); startActivity(intent);
Estes são apenas alguns exemplos de como as intenções podem ser usadas no Android. Desde o envio de mensagens até a realização de chamadas telefônicas, eles podem ser usados para uma variedade de tarefas.