Estimote / Android-Fleet-Management-SDK

Estimote Fleet Management SDK for Android
https://developer.estimote.com
MIT License
836 stars 451 forks source link

What does region represents? #10

Closed LarryLan closed 10 years ago

LarryLan commented 10 years ago

Hello,

I'm working on company POC project using the beacons.

I'm trying to understand what region represents. Does it represent the region of mobile phone or the beacon?

From the demo code "NotifyDemoActivity" it seems to me that a mobile device can only monitor one beacon at a time? How to monitor all the beacons within my phone area?

johnnyzen commented 10 years ago

an area of interest, for example, a garden.

wiktor commented 10 years ago

It represents region defined by one or more beacons.

You can monitor more than one beacon at a time. For example you can monitor: 1) uuid set (XXXX-...-XXXX), major set (like 1234), minor set to null which means any minor number 2) note that you can invoke BeaconManager#startMonitoring(Region) couple of times for different regions

LarryLan commented 10 years ago

thanks wiktor.

1) uuid set (XXXX-...-XXXX), major set (like 1234), minor set to null which means any minor number basically the major, minor and UUID are filters that filters the beacons detected, therefore to define a generic region I need to Region ALL_ESTIMOTE_BEACONS_REGION = new Region("rid", null, null, null); and then bind it to the beaconManager by using startMonitoring method. Then I can get MonitoringListener will be invoked multiple times as a beacon enter or leave the region.

does that make sense to you?

wiktor commented 10 years ago

Correct. Yes, think of them as filters.

Note that generic region like new Region("rid", null, null, null); will not trigger onExitedRegion for first beacon (that is not visible) when other beacon is visible. This is happening since you are still in the defined region.

LarryLan commented 10 years ago

thanks again wiktor. one more question is: when there's a beacon comes into region, the monitoringListener callback is invoked with a region parameter which is the generic one I defined. the UUID/major/minor is null.

actually, what I want to know here is the beacon's characteristic information.

How can I achieve that?

raarlac commented 10 years ago

I want to know this too. I have a database with beacons ID and notification messages for each beacon. Once I enter on a region, I want to know the beacon ID to relate to it's notification message. Also, I can't use ranging method, once this task is running on background.

wiktor commented 10 years ago

You would need to start ranging if you would want to know beacon's characteristics.

Although from feedback I can see that you would like to know in monitoringListener that you entered region and to know which beacons seen had invoked this actions.

Something like: onEnteredRegion(Region region, List foundBeacons) where foundBeacons could be not complete list of beacons that could be visible by ranging since you this event needs to be triggered as early as possible.

raarlac commented 10 years ago

Wiktor, thank you for the reply. Yes, I was thinking about something like the function you stated. Also, by enabling the debugger of the beacon api I noticed that the monitoringlistener have access to an address (I think is MAC adress, since it logs like XX:XX:XX:XX). So, if its not possible to send the beacon list in the onEnteredRegion method, would it be possible to pass this MAC addresses of the beacons connected?

wiktor commented 10 years ago

In the beacon list it would be Beacon object so MAC, UUID, major, minor would be available.

On Wed, Jan 29, 2014 at 3:18 PM, raarlac notifications@github.com wrote:

Wiktor, thank you for the reply. Yes, I was thinking about something like the function you stated. Also, by enabling the debugger of the beacon api I noticed that the monitoringlistener have access to an address (I think is MAC adress, since it logs like XX:XX:XX:XX). So, if its not possible to send the beacon list in the onEnteredRegion method, would it be possible to pass this MAC addresses of the beacons connected?

— Reply to this email directly or view it on GitHubhttps://github.com/Estimote/Android-SDK/issues/10#issuecomment-33587758 .

raarlac commented 10 years ago

That would be awesome. I'm looking forward to it.

wiktor commented 10 years ago

Tracking issue is here: https://github.com/Estimote/Android-SDK/issues/18