You Are Here:

Community: Wiki

This page was last modified on 31 October 2009, at 11:32.

Acessando os recursos nativos do sistema usando PyS60 em dispositivos S60 3rd Edition

From Forum Nokia Wiki

Original em: Accessing system resources with PyS60 on S60 3rd Edition devices (Inglês)

Contents

Introdução

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.

Solução

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:

  • "http://example.com" - A URL da qual devem ser carregados os dados
  • lv - Objeto que para o qual serão enviados os dados recuperados
  • "GET" - O método de requisição utilizado. Este parâmetro pode assumir os valores GET ou POST

Exemplo

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.

Download

Clique aqui para fazer o download do exemplo completo.

Outros Links

Para ter mais detalhes sobre desenvolvimento de aplicações para dispositivos móveis, veja Flash Lite Effort

Related Wiki Articles

No related wiki articles found

Rate This

 
Bookmark this page: DeliciousDiggFacebookGoogleYahooStumbleUponRedditDiigoTechnocratiTwitter  Share this page Share this page Print this Page Print this page Invite a friend Invite a friend
京ICP备05048969号    Email Newsletters Press Terms & Conditions Privacy Policy Sitemap Contact Us © 2009 Nokia 
RDF Facets: qdcZidentifierQSxhttpE3aE2fE2fwikiE2eforumE2enokiaE2ecomE2findeE78E2ephpE2fFileE3aMicrokernelE5fArchitectureE2eGIFX qdcZtypeQUqfnZE45E78cludedFromGeneralE4cistingsQ qdcZtypeQUqfntypeZCommunityContentQ qdcZtypeQUqfntypeZE52esourceQ qdcZtypeQUqfntypeZWebpageQ qdcZtypeQUqfntypeZWikiContentQ qdcZtypeQUqmarsZManagedE52esourceQ qdcZtypeQUqwebZInformationE52esourceQ qdcZtypeQUqwebZPageQ qdcZtypeQUqwebZE52esourceQ qdcZtypeQUqrdfsZE52esourceQ qfnZtypeQUqfntypeZCommunityContentQ qfnZtypeQUqfntypeZE52esourceQ qfnZtypeQUqfntypeZWebpageQ qfnZtypeQUqfntypeZWikiContentQ qmarsZlanguageQUxhttpE3aE2fE2fswE2enokiaE2ecomE2flanguageE2d1E2fenX qrdfZtypeQUqfnZE45E78cludedFromGeneralE4cistingsQ qrdfZtypeQUqfntypeZCommunityContentQ qrdfZtypeQUqfntypeZE52esourceQ qrdfZtypeQUqfntypeZWebpageQ qrdfZtypeQUqfntypeZWikiContentQ qrdfZtypeQUqmarsZManagedE52esourceQ qrdfZtypeQUqwebZInformationE52esourceQ qrdfZtypeQUqwebZPageQ qrdfZtypeQUqwebZE52esourceQ qrdfZtypeQUqrdfsZE52esourceQ