vitas / beaconloc

Beacon Locator - android application for scan, track and management of beacons
Apache License 2.0
105 stars 42 forks source link

Actions not triggering #2

Closed sasoRP closed 7 years ago

sasoRP commented 8 years ago

I have a Gimbal Series 10. This device rotates the bluetooth mac address every X minutes.

It seems that the app uses the bluetooth mac address as a key to identify the beacon. This means that when the mac address changes the actions are not triggering anymore. The app thinks that it is a new device.

If I perform a new scan, I find my beacon there but with a new mac address. When I tap on the beacon it is added to the list as a different beacon.

Maybe this should be changed. The UUID should be the only key that identifies the device. I will try to take a screenshot and add it here to make it more clear.

vitas commented 8 years ago

yes, you are right. currently identifier is build as return getUUID() + ";" + getMajor() + ";" + getMinor() + ";" + getBluetoothAddress(); so i can remove bluetooth address, but i need to think/check how to avoid breaking existing users databases or old version of the app

sasoRP commented 8 years ago

Thanks for your fast reply vitas :)

By the way, apart from that, the app is really good, the best I found on Play Store for notifications. It would be great if the issue can be fixed.

Thanks!

vakabus commented 8 years ago

Hello,

Have you tried to solve it? I changed the identifier to be return getUUID() + ";" + getMajor() + ";" + getMinor() + ";FF:FF:FF:FF:FF:FF"; However, it doesn't recognise the beacon as the same as before but as a new one. And without the MAC address it crashes.

Could you please help me find the part of your code that compares two beacons? I'm kind of confused, because I don't know the library you are using and it seems that equal() methods you created are not being used anywhere.

Thanks.

theScrabi commented 8 years ago

Hello vitas, I have the same problem with my gigaset g-tag. However this tag also changes it's major and minor. So could you make a tag only be identified by its UUID? In order to not break anyone databse you may have to write a converter.

paperoga commented 8 years ago

Hello, the app it's very fine but I don't understand why it's not possible, for me, into the app, test the action. I insert the action type and the action parameter then Execute but nothing. The action is enabled for the beacon. Thanks

vitas commented 8 years ago

@theScrabi , @vakabus

  1. I have tried to change to use only some GUID but then i have a problem to identify already stored beacon, it is always insert as new and will give duplicates in management view. I do not understand what purpose to have always changing major, minor or mac address, that is not correct.

@paperoga for test action does not matter if the action is enabled..probably parameter is not correct. What type of action do you test? what parameters do you enter?

paperoga commented 8 years ago

I enter: Action type = Open Url Action parameter = http://www.corriere.it

I've traced the source and in UrlAction.java, in public String execute(Context context) seems don't execute new CallUrl<>(param).start().

paperoga commented 8 years ago

Hi, Have you some news for me ?

theScrabi commented 8 years ago

@vitas I don't know why my tag is doing that but it does. However I found out that my G-Tag does not have a common beacon protocol, so supporting my tag does not matter anymore. I'll buy a iBeacon compatible device in the next few day, and check if that works.

vitas commented 8 years ago

@paperoga i have uploaded new version on google play, have added new action what is similar to open url but opens url in web browser, looks like that is what you want. "Open Url" action just makes request to url in background without browser, for example you need to trigger something on your own service

paperoga commented 8 years ago

Now it's ok. Thanks