Pessoal,
Estou desenvolvendo um sistema para Java ME que utiliza bluetooth para conectar com um dispositivo GPS para pegar cordenadas atuais do aparelho. Pesquisei na internet como faria para conectar com bluetooth e como descobrir os dispositivos bluetooth pelo celular, até ai tudo bem.
Porém eu tenho 2 perguntas.
Rodo o método startInquiry(DiscoveryAgent.GIAC, this) do objeto DiscoveryAgent, e ele executa o método deviceDiscovered quando descobriu um dispositivo com bluetooth. Deste método eu adiciono este a uma collection e tudo bem, tenho referencia a este.
Porém preciso descobrir se este é ou não um GPS, como poderia fazer isso?
Uma alternativa que eu verifiquei na internet é utilizar o método:
searchServices(int[] attrSet, UUID[] uuidSet, RemoteDevice btDev, DiscoveryListener discListener)
O remote device e o discoverylistener eu sei qual colocar, mas os parametros attrSet e uuidSet eu não sei do que se tratam.
E outra coisa ainda, mesmo depois que eu recebi este ServiceRecord[],
como poderia identificar que estes serviços seriam mesmo do GPS?
Peço ajuda.
Att.
Renan
attrSet você informa os atributos que quer retornar, por exemplo o nome de um serviço.
uuidSet -> são os serviços que você quer que sejam descobertos no dispositivo.
Então no cliente você vai ter que ter um serviço de UUID = 4782648236428346832 por exemplo, e quando o servidor tentar fazer uma conexao bluetooth ele tem que passar no searchServices este UUID pra ele retornar o serviço descoberto.
Valeu cara, mas tenho algumas perguntas, o attrSet é um inteiro, como eu sei qual inteiro representa o nome, qual representa cada tipo de atributo??
E outra coisa, esse uuidSet são os serviços que eu quero descobrir. como eu sei qual é o serviço do GPS? e se eu não sei, como eu coloco para aparecer todos?
attribut é um hexadecimal, você faz um array de ints e passa ele por lá, por exemplo você faz no servidor:
No cliente:
int[] attrSet= {0x0100};
searchServices(int[] attrSet, UUID[] uuidSet, RemoteDevice btDev, DiscoveryListener discListener)
E dai pra pegar o nome algo como (record é um dispositivo retornado):
Uma lista de todos os atributos tem em www.bluetooth.org , procura por assigned numbers.
E isso é só pra fazer a conexão bluetooth, nunca usei GPS, ai acredito que você teria que implementar algo pra se o dispositivo suportar GPS então ele conseguir abrir umaconexão Bluetooth, senão nem criar o serviço.
Valeu cara, agradeço muito!