Acessando os recursos do sistema com PySymbian em dispositivos S60 3rd Edition
Acredita-se que este artigo ainda seja válido no contexto original (quando ele foi escrito)
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.


(no comments yet)