×
Namespaces

Variants
Actions
Revision as of 09:34, 6 August 2012 by hamishwillee (Talk | contribs)

Como capturar informações do sistema celular

From Nokia Developer Wiki
Jump to: navigation, search
Article Metadata

Compatibilidade
Plataforma(s):
Symbian

Artigo
Tradução:
Por thiagobrunoms
Última alteração feita por hamishwillee em 06 Aug 2012

Contents

Problemática

Como capturar informações de células de torres telefônicas, as quais podem ser visualizadas na tela de muitos celulares GSM. A informação de uma célula provê algumas informações (normalemnte da área) da torre em que o dispositivo atualmente está conectado, além de anúncios de provedores de serviços. Java ME não provê nenhuma API que acesse diretamente estas informações através da aplicação.

Solução

As informações de uma célula são enviadas como mensagens CBS (Cell Broadcast Service) através das torres celulares e recebidas por todos os celulares conectados à torre em um certo canal (normalmente 050) pela maioria dos servidores de serviços. Assim, nossa aplicação Java ME pode registrar-se a eventos no canal CBS utilizando Push Registry e consequentemente obter tais informações.

Exemplo

import javax.wireless.messaging.*;
import javax.microedition.io.PushRegistry;

Registrando

Registrando uma MIDlet para receber mensagens CBS na porta 50 e configurando um Listener

public void setupListening()
{
try{
PushRegistry.registerConnection("cbs://:50",this.getClass().getName(),"*");
}catch(Exception e){}
String[] connList;
connList = PushRegistry.listConnections(true);
if((connList == null) || (connList.length == 0))
{
// Pode-se fechar a aplicação em caso de erro
}
else
{
try{
msgconn = (MessageConnection)Connector.open("cbs://:50");
msgconn.setMessageListener(this);
} catch( IOException e) {
e.printStackTrace();}
}
}

Notificando mensagens

Recuperando as informações de uma mensagem CBS

public void notifyIncomingMessage(MessageConnection conn)
{
try{
txtmsg =(TextMessage)msgconn.receive();
}catch(Exception e){
System.out.println(e);
}
 
from = txtmsg.getAddress());
Msg = txtmsg.getPayloadText();
// Display from & Msg
}

Observações

WMA 120/205 não suporta CBS em diversos dispositivos Nokia S40, apenas Nokia S60 e outros.

82 page views in the last 30 days.
×