Como capturar informações do sistema celular
Dados do artigo
Artigo
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
Observações
WMA 120/205 não suporta CBS em diversos dispositivos Nokia S40, apenas Nokia S60 e outros.

