[J2ME] - Bluetooth service discovery mislukt

Pagina: 1
Acties:

  • Cavalera125
  • Registratie: December 2003
  • Laatst online: 13:03
Hoi, ik ben bezig met schrijven van een MIDlet voor de Nokia 6600. Deze heeft een bluetooth API voor J2ME. De MIDlet gaat eerst kijken welke devices er in zijn buurt zijn en vervolgens wil ik een device kunnen selecteren en daar de services van opvragen.

Het zoeken naar devices lukt, maar vervolgens gaat het fout bij het zoeken naar services. Ik zal even mijn code hier plaatsen die ik gebruik voor de service discovery:
code:
1
2
3
4
5
6
7
8
9
10
int[] attrSet = {100};
UUID[] uuids = new UUID[1];
uuids[0] = new UUID(0x1101);// serial port
// This is where it all goes wrong
try{
     int transId = agent.searchServices(attrSet, uuids, rmDevice[index],
                  (DiscoveryListener)this); // this line isn't good...
} catch (Exception e) {
     e.getMessage();
}


Ik weet dat hij een exception gooit bij het try block. Dus in die regel gaat iets mis. Maar wat? Ik zelf denk aan (DiscoveryListener)this, maar heb geen idee waardoor ik het zou moeten vervangen. Of ligt het misschien aan een foutief UUID?

Edit:
Even voor de volledigheid. De exception die gegeven wordt is 'busy'.

[ Voor 5% gewijzigd door Cavalera125 op 06-01-2004 10:03 ]


  • Cavalera125
  • Registratie: December 2003
  • Laatst online: 13:03
Het probleem is al opgelost.

Hij was blijkbaar nog steeds bezig met de deviceDiscovery, vandaar 'busy'. Heb nu in de inquiryCompleted een flag gezet om te zien wanneer hij klaar is.

  • ProgrammerX
  • Registratie: Juli 2002
  • Laatst online: 26-02-2021
Je hebt neem ik aan gewoon de nokia sdk gedownload om zodoende de extra functies van de nokia te kunnen gebruiken, want standaard wordt bluetooth niet ondersteund door j2me.

Ben je er trouwens zelf zo makkelijk uitgekomen met de documentatie of is het implementeren van toch moeilijk ?

Ga er namelijk zelf binnenkort ook naar kijken dus vandaar dat ik even informeer :)

Edit : gebruik je daar trouwens casting met "DiscoveryListener(this)" ?

[ Voor 10% gewijzigd door ProgrammerX op 08-01-2004 14:06 ]


  • Cavalera125
  • Registratie: December 2003
  • Laatst online: 13:03
ProgrammerX schreef op 08 januari 2004 @ 14:04:
Je hebt neem ik aan gewoon de nokia sdk gedownload om zodoende de extra functies van de nokia te kunnen gebruiken, want standaard wordt bluetooth niet ondersteund door j2me.
Series_60_MIDP_Concept_SDK_Beta_0_3_1_Nokia_edition. Die gebruik ik om te compileren. Je kunt bluetooth niet emuleren op die emulator. Hij kan namelijk geen echte bluetoothverbindingen maken. Voor het testen gebruik ik hier op mijn stage 2 Nokia6600 die dus JSR-82 ondersteunen.
ProgrammerX schreef op 08 januari 2004 @ 14:04:
Ben je er trouwens zelf zo makkelijk uitgekomen met de documentatie of is het implementeren van toch moeilijk ?
Implementeren is vrij lastig. Zeker omdat ik dus alleen kan testen op de telefoon zelf. Verder is er nog vrij weinig documentatie hierover te vinden op internet, dus veel trial & error. Ik gebruik hier het boek 'Bluetooth for Java van Hopkins & Antony'.
ProgrammerX schreef op 08 januari 2004 @ 14:04:
Edit : gebruik je daar trouwens casting met "DiscoveryListener(this)" ?
Ja, maar dan met (DiscoveryListener)this ;).

Ik ben nu dus al zover dat ik een client/server aan de praat heb. Ik kan berichtjes sturen van de ene naar de andere telefoon. Gaat met goede snelheid. Verzenden + ontvangen reactie duurt 15 - 40 ms. En dan wordt er een string verzonden als "Hi Server" en dan terug "Hi Client".