“timas Dicas Mobile Delphi XE5

  • View
    2.250

  • Download
    2

Embed Size (px)

Text of “timas Dicas Mobile Delphi XE5

  • 5/27/2018 timas Dicas Mobile Delphi XE5

    1/25

    OBTER O IMEI DE DISPOSITIVO ANDROIDCOM DELPHI XE5

    Quando se fala de Mobilidade garantir que informaes corporativas sejam

    visualizadas apenas por pessoal autorizado essencial. Nessa postagem vamos

    implementar a autenticao de uma aplicao Delphi XE5 Androidatravs doIMEIdodispositivo.

    IMEI a identificao do dispositivo

    IMEI o acrnimo de Mobile Equipment Identity(Identificao Internacional de Equipamento

    Mvel). Trata-se de uma sequncia de nmeros e caracteres especiais nica para cada

    dispositivo. A ideia bem parecida com oMAC addressdas placas de rede. Isso facilita na hora de

    localizar um aparelho especfico em meio s centenas de dispositivos colocados no mercado todosos meses.

    Criando a aplicao Mobile Delphi XE5Crie um novo projeto Mobile no Delphi XE5. No fonte do form da aplicao vamos adicionar as

    seguintes referncias na clausula uses:

    usesFMX.Platform.Android, Androidapi.JNI.Telephony, Androidapi.JNI.Provider ,Androidapi.JNIBridge, Androidapi.JNI.GraphicsContentViewText, Androidapi.JNI.JavaTypes,

    FMX.Helpers.Android;

    No form vamos adicionar um Button, alterar sua propriedade Textpara Capturar IMEIe a

    propriedade Namepara btnCapturarIMEI.

    http://vivaitaocara.com.br/landersongomes/wp-content/uploads/2014/03/IMEI_LOCK.png
  • 5/27/2018 timas Dicas Mobile Delphi XE5

    2/25

    Vamos codificar seu evento onClickcomo abaixo:

    procedureTForm1.btnCapturarIMEIClick(Sender: TObject);var

    obj: JObject;tm: JTelephonyManager;IMEI: String;

    beginobj := SharedActivityContext.getSystemService(TJContext.JavaClass.TELEPHONY_SERVICE);ifobj nilthen

    begintm := TJTelephonyManager.Wrap( (obj asILocalObject).GetObjectID );iftm nilthen

    IMEI := JStringToString(tm.getDeviceId);end;ifIMEI = ''then

    IMEI :=JStringToString(TJSettings_Secure.JavaClass.getString(SharedActivity.getContentResolver,TJSettings_Secure.JavaClass.ANDROID_ID));

    ShowMessage('IMEI :'+ #13+ IMEI);

    end;

    Fcil extremamente fcil

    Execute a aplicao e clicando sobre o boto o IMEI do seu dispositivo ser exibido.

    http://vivaitaocara.com.br/landersongomes/wp-content/uploads/2014/03/Interface_apk.png
  • 5/27/2018 timas Dicas Mobile Delphi XE5

    3/25

    Vimos como fcil capturar o IMEI atravs de uma aplicao Android Delphi XE5.

    Implementando um banco de dados contendo os IMEI's autorizados e fazendo uma

    pesquisa neles voc pode garantir o acesso apenas aos dispositivos previamente

    cadastrados no seu servidor de aplicao.

    isso simples assim!

    At a prxima!

    http://vivaitaocara.com.br/landersongomes/wp-content/uploads/2014/03/IMEI_Delphi_XE5.png
  • 5/27/2018 timas Dicas Mobile Delphi XE5

    4/25

    CONTROLE DE GESTOS NO ANDROID COMDELPHI XE5Com a popularizao dos smartfones e consolidao das telas touch screen ter em sua aplicao

    funes acionadas pelo comportamento de deslizar o dedo sobre a tela pode representar um

    grande diferencial de sua aplicao.Nessa postagem vamos criar uma aplicao AndroidcomDelphi XE5que ser capaz de captar os gestos do

    usurio na tela do dispositivo.

    Criando a aplicao e adicionando os componentes

    Vamos iniciar uma nova aplicao Mobil e em Br anco no Delphi XE5, como j fizemos este procedimento em

    vrias postagens anteriores vamos pular essa parte, e nesta aplicao vamos inserir os componentes: 1 ToolBar,

    1 Label(i nsira dentro da ToolBar), 1 TabControl, e 1Panel.

    Uma vez adicionados os componentes em nossa aplicao, para que sua interface fique parecida com a figura

    acima vamos configurar suas propriedades como abaixo:

    ToolBar1

    Align> alTop

    Label1

    Text> Gestos com Delphi XE5

    TextAlign> taCenter

    TabControl1

    Align> alBottom

    TabPosition> tpBottom

    Panel1

    Align> alClient StyleLookup> calloutpanelstyle

    Agora vamos clicar com o boto direito do mouse sobre oTabControl1e adicionar3 novos TabI tem, aps

    adicionados vamos alterar a propriedade Text de cada um deles:

    http://vivaitaocara.com.br/landersongomes/wp-content/uploads/2014/02/Interface-da-Aplica%C3%A7%C3%A3o-Gestos.png
  • 5/27/2018 timas Dicas Mobile Delphi XE5

    5/25

    TabItem1.Text> Esquerda

    TabItem2.Text> Central

    TabItem3.Text> Direita

    GestureManager a gesto dos gestos

    Para que os gestos sejam interpretados por nossa aplicao precisamos adicionar ainda um GestureManager.

    Selecione o Panel1e vamos associar sua propriedade Touch.Gestur eManagere habilitar suasGestures

    Standard: Left, Right, Downe Up. Veja na imagem abaixo:

    Codificando a captao do Gestos

    Apenas para garantir que nossa aplicao sempre seja inicializada com aTabI temCentralativa em

    nosso TabControlvamos inserir o seguinte cdigo no evento onActivate do Form1:

    procedureTForm1.FormActivate(Sender: TObject);beginTabControl1.TabIndex := 1;end;

    E para os gestos serem interpretados pela aplicao vamos inserir no evento onGesture do Painel1o cdigo:

    http://vivaitaocara.com.br/landersongomes/wp-content/uploads/2014/02/Associando-GestureManager-ao-Panel.pnghttp://vivaitaocara.com.br/landersongomes/wp-content/uploads/2014/02/Adicionando-TabItens.pnghttp://vivaitaocara.com.br/landersongomes/wp-content/uploads/2014/02/Associando-GestureManager-ao-Panel.pnghttp://vivaitaocara.com.br/landersongomes/wp-content/uploads/2014/02/Adicionando-TabItens.png
  • 5/27/2018 timas Dicas Mobile Delphi XE5

    6/25

    procedureTForm1.Panel1Gesture(Sender: TObject;

    constEventInfo: TGestureEventInfo; varHandled: Boolean);var

    Gesto : string;begin

    ifGestureToIdent(EventInfo.GestureID, Gesto) thenbegin

    caseEventInfo.GestureID ofsgiLeft : TabControl1.TabIndex := 0;

    sgiRight: TabControl1.TabIndex := 2;sgiDown : TabControl1.TabIndex := 1;sgiUp : ShowMessage('Voc utilizou o gesto para cima: '+ Gesto);

    end;end;

    end;

    Aps a todos os componentes configurados e os cdigos acima inseridos essa ser a aparncia do projeto

    Executar e entender o funcionamento da aplicao

    Agora basta executar a aplicao no emulador ou diretamente no seu dispositivo Android e conferir o

    resultado. Basicamente trocamos asTabItenscom o movimento dos dedos sobre o Panel1:

    Deslizando para a direita acionamos a TabItem Direita

    Deslizando para a esquerda acionamos a TabItem Esquerda

    Deslizando para baixo vamos para a TabItem Central

    Deslizando para cima exibida uma mensagem contendo a constante que denomina o gesto acionado

    http://vivaitaocara.com.br/landersongomes/wp-content/uploads/2014/02/Interface-Final-da-Aplica%C3%A7%C3%A3o-Gestos.png
  • 5/27/2018 timas Dicas Mobile Delphi XE5

    7/25

    Agora adaptar o modelo sua necessidade e mandar ver!

    http://vivaitaocara.com.br/landersongomes/wp-content/uploads/2014/02/Aplica%C3%A7%C3%A3o-Executando-Gestos.png
  • 5/27/2018 timas Dicas Mobile Delphi XE5

    8/25

    INTENTS COM DELPHI XE5 COMUNICANDOAPPS ATRAVS DO ANDROIDTanto em desktop quanto mobile, no desenvolvimento por diversas vezes temos a necessidade de

    nossa aplicao interagir com outras aplicaes da plataforma alvo de nosso desenvolvimento.

    Aquele relatrio que precisa ser exportado e visualizado em Excelna plataforma Desktop um exemplo que

    quase todo desenvolvedor j teve implementar.

    Intent, aqui bate o corao

    Quando falamos de mobile, em Androidsendo mais especfico, poder interagir com os recursos do sistema por

    si s, j pode dar ao usurio de nossa aplicao um ganho significativo de experincia de uso. J citamos aqui

    alguns casos de como fazer nossa aplicao interagir com o Android, porm na postagem de hoje traremos a

    tona a classe que tida como o corao do sistema Android: a Classe Intent.

    A classe Intent(android.content.Intent) est presente em todos os lugares e representa uma mensagem da

    aplicao para o sistema operacional solicitando a este que realize algo. Atravs dela possvel integrar

    diferentes aplicaes trocando essas mensagens e resultados entre si. O sistema operacional por sua vez

    interpreta essas mensagens efetuando o que est sendo solicitado, desde a abertura de uma aplicao at mesmo

    efetuar uma chamada telefnica.

    Delphi: criando a interface da aplicao.Inicie um novo projeto Mobile em branco, nele vamos inserir 1 Label, 1 ComboBox, 1 Button. Vamos alterar

    as propriedades dos componentes como abaixo:

    Label1

    Text> Intentsno Delphi

    TextAling = taCenter

    ComboBox1

    Itens

    Mapa Telefone

    Navegador

    Contatos

    Button1

    Text> Executar

    Em nosso projeto iremos utilizar alguns namespaces para utilizarmos funes do Android, para isso na clausula

    Uses da seoimplementationvamos incluir:

    Ao final desta etapa teremos nossa aplicao visualmente parecendo-se com a imagem abaixo:

    usesIdURI, FMX.Helpers.Android, Androidapi.Jni.GraphicsContentViewText, Androidapi.Jni.Net,

    Androidapi.Jni.JavaTypes;

  • 5/27/2018 timas Dicas Mobile Delphi XE5

    9/25

    E como usar as Intents na prtica? E no Delphi como seria isso?

    Nossa aplicao enviar chamadas ao sistema operacional invocando os aplicativos do Google atravs de pares

    Ao / URI que definem qual aplicativo est sendo chamado e seu comportamento ao receber a inteno dechamada.A lista completa de Intents para invocar aplicativos do Google em dispositivos Android pode ser

    checada no link:

    http://developer.android.com/guide/appendix/g-app-intents.html.

    Ento vamos fazer as coisas acontecerem por aqui!

    No evento OnClick do nosso Button1 vamos inserir umas variveis:

    varuri : string;Int