Namespaces

Variants
Actions

Please note that as of October 24, 2014, the Nokia Developer Wiki will no longer be accepting user contributions, including new entries, edits and comments, as we begin transitioning to our new home, in the Windows Phone Development Wiki. We plan to move over the majority of the existing entries over the next few weeks. Thanks for all your past and future contributions.

Archived:Acessando os recursos do sistema com PySymbian em dispositivos S60 3rd Edition

From Wiki
Jump to: navigation, search

Archived.pngAquivado: Este artigo foi arquivado, pois o conteúdo não é mais considerado relevante para se criar soluções comerciais atuais. Se você achar que este artigo ainda é importante, inclua o template {{ForArchiveReview|escreva a sua justificativa}}.

Acredita-se que este artigo ainda seja válido no contexto original (quando ele foi escrito)


Article Metadata

Artigo
Tradução:
Por FINALX
Última alteração feita por hamishwillee em 02 Jun 2013

Introdução

Um problema comum no desenvolvimento de aplicativos no Flash Lite ou WRT é a falta de acesso a recursos S60. Estas línguagens não têm acesso a GPS, Bluetooth, Contatos, SMS, etc no S60 3rd Edition. Neste artigo vamos mostrar um aplicativo Flash Lite que pode acessar os recursos da S60 3rd Edition interna usando PySymbian.

Solução

Isso foi feito utilizando a arquitetura e implementação mostrado em How to access S60 resources in WRT or Flash Lite, using PyS60.

Como foi mostrado no post, um aplicativo cliente tem acesso a recursos internos S60 pensamento pedidos HTTP. No ActionScript 2.0 (que é usado em Flash Lite 2.x e 3.x) um pedido HTTP pode ser executada usando a classe LoadVars. O uso básico dessa classe é mostrada abaixo:

var lv:LoadVars = new LoadVars();
lv.onLoad = function(success:Boolean){
//Ações quando os dados são carregados.
}
lv.sendAndLoad("http://exemplo.com",lv,"GET");

Os parâmetros do método sendAndLoad são:

  • "http://examplo.com" - A url a partir do qual irá carregar os dados
  • lv - Objeto com os dados para enviar a URL
  • "GET" - O método para enviar os dados, pode ser "GET ou " POST "

Nós vamos usar essa classe para acessar os recursos da S60 interno, utilizando o código mostrado neste artigo post

Exemplo do código

No código abaixo, mostramos como acessar a posição GPS utilizando esta solução.

//Fullscreen
fscommand2("FullScreen",true);
 
//Criar a variável load vars
var lv:LoadVars = new LoadVars();
// Cria um objeto MovieClipLoader para carregar o mapa estático do Google
var loader:MovieClipLoader = new MovieClipLoader();
//Gerar uma API_KEY e definir aqui.
var apiKey = 'ABQIAAAAJq0bIh_b5seBuaS5dG3MyBTgIMgsbASCAp5eBSzKUN4OpxTWjxQe25ul58fmeLTrIy1RiBxMJ2gJ5w';
//Quando a posição GPS é recuperado. O seguinte método é chamado.
lv.onLoad = function(success:Boolean){
if(success){
//Definir os componentes de interface do usuário com os dados recuperados
//Os dados recuperados quando você está acessando o serviço "get_position" são as "latitude" e "longitude" do dispositivo.
latitude_txt.text = lv["latitude"].substring(0,8);
longitude_txt.text = lv["longitude"].substring(0,8);
var url:String = 'http://maps.google.com/staticmap?center='+trim(lv["latitude"].substring(0,8))+','+trim(lv["longitude"].substring(0,8))+'&zoom=10&size=220x200&maptype=mobile&key='+apiKey;
//Carregar um mapa com a sua posição no centro
loader.loadClip(url,map_mc);
}else{
trace("Error");
}
}
//Comece o trabalho quando pressionar o botão "LOAD MAP".
loadMap_btn.onPress = function(){
//A url dada no método sendAndLoad tem acesso ao dispositivo local (127.0.0.1, para a porta 5004 (Esta é a porta padrão do ServerPython) e o serviço "get_position (Recupera a posição GPS do módulo padrão)
lv.sendAndLoad("http://127.0.0.1:5004/get_position",lv,"GET");
}

Lembre-se de que você tem que iniciar a aplicação "spython" antes de acessar os recursos do Flash Lite S60.

This page was last modified on 2 June 2013, at 23:19.
402 page views in the last 30 days.

Was this page helpful?

Your feedback about this content is important. Let us know what you think.

 

Thank you!

We appreciate your feedback.

×