I was earlier using the AltBeacon Library for detecting beacons and it works perfectly without any problems.
Then i came across
https://developers.google.com/beacons/overview?hl=en
Which suggest
The Google Proximity Beacon API can be used to register any beacon that supports one of the following specifications: (They mentioned register may be i was mistaken to assume it may detect as well)
Eddystone
iBeacon
AltBeacon
So i was interested and started using the subscribe API after creating the Project in Google Console and using the googleApiClient along with Nearby.MESSAGES_API and strategy BLE_ONLY for detecting beacons. And was unsuccessful.
After that reading the API docs completely (should have done before investing time) it mentions
In order to work with Google APIs, beacons must first be provisioned with some initial settings (namespace ID, instance ID, frame format, and so on), and then registered using the Google Proximity Beacon API.
So does this mean i have to compulsorily configure the beacons individually before using just any random beacon with my app to detect and get message? It might seem obvious i just don't want to go with a custom 3rd party implementation like AltBeacon if GooglePlayService.Nearby_Message_API supports listening to any beacon.
In case its possible and if someone has already tried just listening to beacons enter and exit events without the need to configure do let me know i can share the code and take it forward. Or i should leave the Nearby API and go back to good old AltBeacon.
BR,
Jayshil
Related
I have a BLE Beacon and instead of broadcasting constantly it just broadcasts a message when you push a button. It's a commissioning message. I'm looking all over the place but can't find a library that listens to Beacon messages.
I've taken a look and tried these solutions:
https://altbeacon.github.io/android-beacon-library/index.html
https://developers.google.com/nearby/messages/android/get-started
Is there a library that allows this?
In order to detect a beacon message sent at the push of a button, you need the mobile app to be listening constantly ("scanning" is the BLE term) because it doesn't know when you are going to press the button.
You can use the open source Android Beacon Library mentioned in your question to do this. You would want to use its "beacon ranging" API which scans for beacons and tells your app what beacons it sees (if any) with a callback every second. If somebody hits the button the beacon, your app will get a callback to didRangeBeaconsInRegion with a single beacon in the list. (If nobody hits the button, the app would get a callback with zero beacons in the list.)
A couple of important points:
You need to know the format of the beacon your hardware is transmitting (iBeacon, AltBeacon, Eddystone-UID, Eddystone-URL, etc.) so you can set up the scanning library to look for that kind of beacon.
You need to know what kind of identifier the hardware beacon sends out. Formats like iBeacon and Altbeacon transmit long hexadecimal UUID identifiers like "2F234454-CF6D-4A0F-ADF2-F4911BA9FFA6". You will need to know what it sends so you can tell if the beacon is yours. Otherwise your program will react even if somebody else's beacon is transmitting.
Full disclosure: I am the lead developer on the Android Beacon Library Open Source Project
I am trying to create an Android app thats detect a rasperry pi by using the AltBeacon library by davidgyoung. So far I am able to get most data including distance, although the only things that I really need are dBms and the UUID of the device. Inside the rangeNotifier() function I pretty much print every piece of data to see if the UUID might come out somewhere that matches the one of the device but the only thing that resembles a UUID is given to me as "00000000-0000-0000-0000-000000000000" and is found by using the getIdentifier method. Any ideas why I can't see the actual UUID of the device? Thanks!!
If multiple Android apps say the ProximityUUID is 00000000-0000-0000-0000-000000000000, then they are probably right.
The reason iOS apps probably won't detect 00000000-0000-0000-0000-000000000000 is because unlike Android, iOS can only detect a beacon's UUID if it is pre-configured into the app (yeah, that's a chicken and egg problem I know!) and your UUID is probably not configured into those iOS apps. So it may be showing the ProximityUUID of a different beacon in the vicinity.
Also, don't confuse the Bluetooth GATT Service UUID with the iBeacon Proximity UUID. Even though these look superficially similar -- they are completely different identifiers If you are using a more general Bluetooth scanning app on iOS (and not a beacon scanning app) this may be what iOS is seeing.
I am trying to develop an android application that scan ble(ibeacon) devices and get them advertising data(I am parsing it and get some values like temperature value or beacon name.). But now I need to manipulate this data from android device. Is it possible to manipulate this data from android app? If it is then how? Can anybody help ?
Unfortunately there is no standard API to configure beacons (change the values of the fields they advertise). Some manufacturers provide an API to do this over Bluetooth LE, some to not. You must check with the manufacturer of your beacon to see if they provide a public API to change the beacon configuration, and then you may be able to code an Android app to do this. Whether you can do so and how you do so will be different for each beacon make and model.
For the case of the beacons used in the question above, it appears there is no API available to do this. The sales page below shows that their is an iOS app to configure the beacons, but it does not mention anything about an API that will let you do the same.
http://minew.en.alibaba.com/product/60193606262-220649015/CE_FCC_certified_indoor_location_advertisements_nRF51822_chipset_bluetooth_beacon_ble_ibeacon.html
I have beacon from Kontakt.io.
I try to write Android app that show me a notification every time when I go to the beacon area. App must run on background and wake up my app.
I try to use Google Nearby API but no beacon found.
Oficial Google sample app also no beacon found.
My own app found beacon but not working on background.
I try switch between Eddystone and iBeacon profil, but it is still the same.
Official app by konkakt.io find beacon.
My own app which list beacons in area also works.
These applications don´t use Google Nearby, but I can write app with background scanning beacons with Google Nearby .
At the beginning I proceeded according to this manual:
https://developers.google.com/nearby/messages/android/get-started#step_1_get_google_play_services
Link to Google sample:
https://github.com/googlesamples/android-nearby/tree/master/messages/NearbyBackgroundBeacons
In google sample is BackgroundSubscribeIntentService. In MainActivityFragment I set up all and run the servise. But there is no incoming intent to this service. I have no idea what to do. It occurred to me somehow register a beacon to the application but I don´t know how.
I have Oneplus One and Samsung Galaxy S6 with Android 6 and bluetooth 4.
Thank you.
You need to understand What is iBeacon and Eddystone
If you want to use beacon as a eddystone you need to update the beacon configuration through Kontakt.io web panel ( Kontak io Web Panel ) and you have to use Kontakt io Android App ( Kontakt io Google Play Store ) for update the beacon, because beacon will update via Bluetooth.
If you want use you beacon in Google Nearby Panel then you have configure your beacon as a eddystone. Once you done with all configuration with kontakt io then you need to Work on google Developer beacon Panel Google Beacon Dashboard.
Now you have to setup some setting in Android phone.
Open you Chrome app.
Go to chrome settings.
Click on Privacy.
There is one Item Name as Physical web you have turn it on.
If you are using below 6.0 version Android Phone Then you have to find Google Setting in your phone and turn on Nearby. If you using above 5.0 then go to Phone Setting find google -> NearBy -> and turn on.
Thanks
I hope this will help you.
Can I have my iBeacon send push notifications to Android devices? If so what are the Android version and device limitations?
(The reason I am asking here is because this question still isn't easily found on fast google search.)
The simple answer is yes. A few caveats:
Only Android version 4.3+ supports Bluetooth LE, which is needed to detect beacons.
The Android device must have a Bluetooth LE chipset. Most devices released in late 2012 or later have this feature.
You need a third party library bundled with your app, like the Android Beacon Library, or you need to roll your own code to decode Bluetooth LE advertisements to read beacon identifiers.
You should also understand that beacons themselves don't actually push notifications to devices. Mobile devices can detect beacons, and when they do, they read their numeric identifier. A user-facing notification is often triggered upon beacon detection programmatically by tying the beacon's numeric identifier to a string message like "Welcome to our store."