Sua aplicação Mobile DelphiXE5 efetuando chamada telefônica sem necessidade de consultar a agenda ou outro aplicativo. De a seus usuários ótima experiência.
Imagine que você tem uma aplicação móvel que carrega a lista de fornecedores de seu cliente, nessa lista há informações como Nome, Telefone, e-mail, etc. Você pega a informação de telefone e gostaria de usá-la para efetuar uma ligação para esse fornecedor. Você memoriza esse telefone e no aplicativo de discagem do seu smartphone digita esse número para efetuar a chamada. Por que não fazer isso direto de seu aplicativo? O número do fornecedor já está armazenado lá… Vamos ao Delphi XE 5 então?!
Criando a UI (User Interface – Interface do Usuário)
Abra o Delphi XE5 e crie Novo Projeto Móvel através do menu File–> New Project –> Delphi Projects –> Mobile Projects. Utilizaremos novamente o modelo de aplicação em branco (Blank Application).
Vamos salvar nosso projeto através do Menu File –> Save All (SHIFT +CTRL + S), crie uma pasta denominada prjDiscador para salvarmos nossos arquivos dentro dela. Chamaremos a Unit do formulário de frmDiscadorUnt e o projeto chamaremos Discador.
Insira no formulário um Listbox, renomeie-o para lbxFornecedores, clique com o botão direito sobre ele e selecione a opção Add Item.
Vamos adiconar 1 TListBoxHeader e 3 TListboxItem. E configurar suas propriedades como abaixo:
- ListBoxItem1
- ItemData.Text –> ‘Banco do Brasil’
- ItemData.Detail –> ‘0800 729 0722’
- StyleLookup –> listboxitembottomdetail
- ListBoxItem2
- ItemData.Text –> ‘Caixa’
- ItemData.Detail –> ‘0800 726 0101’
- StyleLookup –> listboxitembottomdetail
- ListBoxItem3
- ItemData.Text –> ‘Loja da Esquina’
- ItemData.Detail –> ”
- StyleLookup –> listboxitembottomdetail
Altere a propriedade Align do lbxFornecedores para alClient, assim ele passará a ocupar toda a tela do aplicativo. Quando alteramos as propriedades StyleLookup dos ListBoxItens listboxitembottomdetail fizemos com que a informação do campo Detail passe a ser exibida abaixo do texto principal do item.
Agora que já temos os dados de nossos “fornecedores” vamos codificar nossa aplicação dando a ela a funcionalidade proposta na postagem.
Funcionamento e Codificação da aplicação
Basicamente a aplicação efetuará a discagem para o item selecionado no lbxFornecedores vamos fazer alguns ajustes no código. Pressione F12 para visualizarmos a Unit e nela vamos inserir na cláusula uses da seção Interface vamos adicionar os seguintes Namespaces:
//Namespaces adicionados FMX.PhoneDialer, FMX.Platform;
Vamos ainda acrescentar à definição de nosso Formulário (frmDiscador) uma variável Discador em sua seção private como segue:
private { Private declarations } Discador : IFMXPhoneDialerService;
Assim já temos tudo pronto para inserir o código que efetuará a chamada telefônica propriamente dita, para isso codificaremos o evento OnItemClick do lbxFornecedores como abaixo:
procedure TfrmDiscador.ListBox1ItemClick(const Sender: TCustomListBox; const Item: TListBoxItem); begin if not Item.ItemData.Detail.IsEmpty then begin TPlatformServices.Current.SupportsPlatformService(IFMXPhoneDialerService, IInterface(Discador)); if Assigned(Discador) then begin Discador.Call(Item.ItemData.Detail); end; end else begin Discador.Call(InputBox('Fornecedor sem número.', 'Informe o número a ser discado', '' )); end; end;
voilà…
Execute a aplicação e verá que já temos a chamadas telefônicas acontecendo ao clicar sobre os itens da nossa lista de fornecedores.
Faz-se notar que nosso último fornecedor não tem informado seu número de telefone, quando o campo Detail do item estiver vazio, será exibida uma InputBox solicitando o número a ser discado.
A simplicidade de implementar essa funcionalidade em sua aplicação pode fazer a diferença no cotidiano de seu usuário/cliente, pense nisso.
Até a próxima e bons códigos!