Original em: Accessing system resources with PyS60 on S60 3rd Edition devices (Inglês)
Contents |
Um problema comum no desenvolvimento de aplicações em FlashLite ou WRT para dispositivos S60 3rd é a pobre capacidade de acesso aos recursos nativos dos dispositivos S60 3ª edição. Tais linguagens não possibilitam acesso a GPS, Bluetooth, lista de contatos, envio de mensagens SMS, etc.
Para solucionar o problema supracitado foi utilizado a arquitetura apresentada no artigo Como acessar os recursos de dispositivos S60 em WRT ou FlashLite usando PyS60
Como visto no artigo, uma aplicação cliente tem acesso aos recursos internos dos dispositivos S60 através de requisições HTTP. Em ActionScript 2.0 (que é utilizado nas versões de Flash Lite 2.x e 3.x) uma requisição HTTP pode ser executada usando a classe LoadVars. Um exemplo básico da utilização desta classe é mostrada abaixo:
var lv:LoadVars = new LoadVars();
lv.onLoad = function(success:Boolean){
//Ações quando o dado é carregado
}
lv.sendAndLoad("http://example.com",lv,"GET");
Os parâmetros do método sendAndLoad são:
No código abaixo é apresentado o acesso ao GPS do dispositivo utilizando esta solução.
//Fullscreen
fscommand2("FullScreen",true);
//Instancia objetos da classe LoadVars
var lv:LoadVars = new LoadVars();
//Instancia um objeto MovieClipLoader para carregar um mapa estático do Google
var loader:MovieClipLoader = new MovieClipLoader();
//Gera uma chave (API_KEY) para acessar o mapa
var apiKey = 'ABQIAAAAJq0bIh_b5seBuaS5dG3MyBTgIMgsbASCAp5eBSzKUN4OpxTWjxQe25ul58fmeLTrIy1RiBxMJ2gJ5w';
//Quando as informações do GPS são carregadas. O seguinte método é invocado.
lv.onLoad = function(success:Boolean){
if(success){
//Mostra na tela os dados carregados
//Os dados carregados quando acessar 'get_position' são: '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;
//Carrega um mapa com a sua posição no centro
loader.loadClip(url,map_mc);
}else{
trace("Error");
}
}
//Inicializa ao pressionar o botão 'LOAD MAP'.
loadMap_btn.onPress = function(){
//A URL passada no método 'sendAndLoad' possui acesso para o próprio dispositivo (127.0.0.1) para porta 5004 (esta é a porta default do ServerPython) e o serviço 'get_position' (Recupera a posição GPS do módulo default)
lv.sendAndLoad("http://127.0.0.1:5004/get_position",lv,"GET");
}
Lembre-se que é necessário iniciar a aplicação 'spython' antes que a aplicação escrita em Flash Lite tente acessar os recursos do dispositivo S60.
Clique aqui para fazer o download do exemplo completo.
Para ter mais detalhes sobre desenvolvimento de aplicações para dispositivos móveis, veja Flash Lite Effort
No related wiki articles found