On Thu, Feb 9, 2012 at 11:44 AM, Soyer <mblack...@gmail.com> wrote:

> so it's an order issue, Could you please instruct me which part should
> i change?, because honestly i have read loads of articles and i don't
> think i am going anywhere which getting more n more frustrating...
>
> That would be Very Appreciated.
>
>
It's not an order issue.

You're thinking that you call .startDiscovery() and then it starts
discovering devices and tells you which there are.

It doesn't work like that.

Discovery can take a long time, tens of seconds into minutes.

If your call to .startDiscovery() blocked until the discovery was finished,
your program would ANR and crash....

Instead, when you call .startDiscovery() what happens is that you're asking
the operating system "start looking for BT devices, when you finish looking
for them, broadcast that you're done and I'll ask what you found, even
though this will probably take a long time."

So you need to register the BroadcastReceiver to handle the Bluetooth
discovery finished action.

Have you read the BluetoothChat example.  I feel like if you had then you
wouldn't be asking this, go read that and it should make sense.  And if it
doesn't then go read about what a BroadcastReceiver is in the first place.

Basically: you're writing your code like it runs in a straight line, it
doesn't, it runs asynchronously, so you have to structure your code
differently.

kris

-- 
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Reply via email to