Ok, I am starting to develop a new app but I do need to know if it is possible before I begin. I have no experience with iBeacons, beacons or anything BLE related so please forgive my ignorance here.
Problem: I want to use my Mac Bluetooth and send a BLE notification to my iPhone and my Android phones (think of the Starbucks app and how it sends you a Beacon). Question is: Is it possible for my iOS SDK / Android SDK (is there any kind of delegate or API) that will receive my BLE notification and open a specific app based on that? In other words, my Mac would send a simple Beacon UDID and my phone should launch my app based on that. And what libraries (I use ruby, but could do PHP, Python, anything on the Mac side) that would allow me to do that on both ends?
Yes, this is possible to do, but there are some challenges:
OSX Yosemite cannot transmit as a beacon, at least not with its built-in bluetooth interface. At a minimum you need to add an external bluetooth dongle. You could then use an off the shelf-program like MacBeacon to transmit.
While there are beacon detection tools for both iOS (CoreLocation, which is built-in) and Android (Android Beacon Library, which is an open source add-on), both require a custom App to be installed on the phone to detect beacons.
You would need to make a custom app as described in (2) that would launch yet another app depending on the beacon identifier detected. This would require Objective C skills for iOS and Java skills for Android.
Related
I'm working on a project using Ubertooth. We will use Ubertooth to label using the visualized wave forms of the RSSIs received and determine what the signal is (WIFI, BLUETOOTH, ZIGBEE, ETC) using deep learning.
Currently I've been experimenting with a Linux Ubuntu environment using Ubertooth and some simple examples.
My question is whether Ubertooth can be implemented on an Android smartphone (comparably of the latest models).
Ubertooth knows it's a kind of dongle that scans the 2.4 GHz frequency band and gets the signal's value. But Android smartphones also scan and connect to wifi and Bluetooth signals.
So I thought that it would be possible to implement the function of Ubertooth using only Android smartphone. I want to know if it's possible to think and why. If there is anything I misunderstand, it would be appreciated.
I have a game programmed in Unity3D in order to publish it in the end to iOS and Android.
Suppose the game App is installed on the mobile and I want to control it through an external Bluetooth Low energy device (for example - Heart rate sensor) What would be the better way to make the architecture for that for making it cross platform?
For example - to make it the easiest way to implement it on iOS and Android as well?
*External* *Mobile*
Bluetooth Low Energy device --> Something.. --> Unity
Something = What cross platform framework do you advice me to use that can interface with the Bluetooth Low Energy (in the future also with Database) and the Unity3D to pass it the logic ?
Thanks a lot
Unity does NOT have a Bluetooth API to use bluetooth on iOS and Android. The way to do this to make a plugin.
For iOS, you can write a plugin or functions in Ocjective-C or C++. You then place the .cpp or.mm file in your Assets/Plugins/iOS directory.
For Android, You have to write the Android plugin in Java or C++ then compile it into .jar exntention and place the jar file in Assets/Plugins/Android
Each plugin should have thesame function names so that they will be compatible with each other. When you want to compile for Android or iOS, Unity will automatically choose the correct plugin folder to use for the specified mobile platform.
The good way of making this plugin is to write a whole Application in iOS or Android and test your functions in XCode or Android Studio. If they work, then you can go ahead and convert it to plugin to be used in Unity. This saves time.
EDIT:
I don't like adversing products but I know this will help you so here is a plugin that you can use for Bluetooth LE communcaitions that works on Android and iOS. https://www.assetstore.unity3d.com/en/#!/content/26661
This plugin is new but ihas good reviews. That's why I posted it.
Please bear in mind that most Heart rate sensors come with a built in security and proprietary communication protocol. So, even if it uses Bluetooth, you will have to reverse engineer the protocol and then write a c# class using the Bluetooth plugin I linked here to be able to communicate with them. You can reverse engineer any Heart rate sensor. Just buy one of the famous ones then get an iPhone and Android phone.
Jailbreak the iPhone and root the Android device. Install bluetooth sniffing app and try to communicate your Heart rate sensor device with the with either iPhone or Android. You can read what is been sent to the Heart rate sensor device from the iPhone/Android or what iPhone/Android is sending to the Heart rate sensor device. That is what you need to be sending to it in your c# class to make it work. Other ways of doing this is de-compiling the app that comes with the Heart rate sensor device(Not recommended). You can see what's going on from there.
If the Heart rate sensor has an API for android or iOS, you will then have no other option but to write the plugin yourself on top of the API they provided for it.
If you are making your own Heart rate sensor device, then that should be easier. You can make a prototype with Arduino and communicate to it with the Plugin I linked here. If it works, you can then move on to make it a real product.
It looks like the H6 and H7 are the most famous ones. They also have a developer page. It hould be easy to communicate with these because they use standard protocol instead of proprietary ones just like some do.
http://developer.polar.com/wiki/H6_and_H7_Heart_rate_sensors
Android heart rate sensor code(standard):
http://developer.android.com/guide/topics/connectivity/bluetooth-le.html
iOS heart rate sensor code(not about standard):
http://developer.polar.com/wiki/H6_and_H7_Heart_rate_sensors#HR_example_code_for_Android
You can email the developer of the plugin I posted in link and ask they could support or help you implement heart rate sensor. They might even do it.
Good luck.
I want to know how iBeacon works actually. I found the sample code of AirLocate, but couldn't figure out how it works. iBeacon is works on BLE, so it may be possible for do data communication with other BLE supported devices via bluetooth?
As it possible to make data transfer between iOS - android device via bluetooth using BLE or beacon?
iOS had already announced iBeacon technology, but didn't find out any technical specification document regarding this. I also want to know how it works on android?
Can some one please describe about this technology and is it possible to make data-communication via bluetooth between iOS-iOS device, and iOS-Android Device?
No, you cannot communicate between devices using iBeacons because an iBeacons are transmit only. Mobile devices, both iOS and Android can both hear iBeacons, but they cannot talk back.
iBeacons work by transmitting a 3-part identifier and a transmitter power reference value every second (or more often.) That's it. They do nothing more. SDKs in iOS and Android listen for these signals and report them to your app, but the rest is up to the app developer.
What you suggest may be possible with a custom Bluetooth LE beacon, but it would need to be significantly more complex than an iBeacon, and you would have to build your own.
Here are a couple of links to give you more info:
How iBeacons work on Android from Radius Networks
iBeacon overview by Dave Addey
Full disclosure: I work for Radius Networks.
I'm working on a BLE proximity sensing feature based on Android and need some information.
Currently I see there are no BLE beacons manufacturers for android. I found 2 so far for iPhone.
1) http://www.estimote.com
2) http://www.gimbal.com
Estimote claims that their devices are generic but mainly they are publicized for iBeacons. So I'm not sure whether I should order them for a feature on Android.
Secondly gimbal explicitly mentions that their devices won't be enabled for android for proximity sensing.
So if any of you know where can I order BLE beacons compatible with Android please let me know.
Another thing, for prototype testing I was wondering whether I could use a Android BLE capable tablet or smartphone as a beacon to emit BLE signals?
Till now the documentation for android only suggests how to detect a beacon, But I'm not sure whether an Android device can be used as a beacon.
Any insights?
There is a BLE Beacon manufacturer for Android: Radius Networks
You can detect any standard iBeacon on Android using our Android iBeacon Library.
You can try it out yourself with our free iBeacon Locate app, which is based on this library. My company also sells both software and hardware iBeacons that I guarantee work with Android. But again, any standard iBeacon will work, too. Don't take my word for it -- just download our free app and use it to see one of our iBeacons. (We even have a free virtual machine you can use!)
It is currently not possible to make an iBeacon out of a stock Android device because the Bluetooth LE APIs, introduced in Android 4.3, do not support the peripheral mode needed to transmit advertisements like an iBeacon.
EDIT: It is now possible to make rooted Android 4.4.3 devices transmit as an iBeacon. See here.
I tried simple BLE scan app on Android, but the callback for LeDevices always returned null for UUID[]. Also, finding based on know UUID didnot work.
To add to David's reply. I have tried Radius Networks SDK, pretty clean. I like it.
Also, Estimotes has released their Android SDK today(1/7), which is good. The sample App shows notification, Distance, Major-Minor. I tested with 3 Estimotes & also with iPhone's app (making the iPhone as iBeacon). It works well, give it a try.
Note that you have to modify the code
change the ESTIMOTE_PROXIMITY_UUID value to the UUID that you are watching for.
Hope it helps.
I was thinking of developing an iPhone and android application so that they can share data between each other via bluetooth. Is it possible? If yes how?
Thanks for your help
The Question from user1080731 was - Is it possible to transfer Files Via Bluetooth between Android and iPhone.
And I think that the answer is NO.
The App referred to in the previous responses does not seem to use Bluetooth (the App's description is misleading)
In the demo video for the app - It used Bluetooth when talking between 2 iOS devices, but uses WiFi when talking between Android and iPhone.
in iOS the only possibility is to use the GameKit APIs (primarily meant for peer to peer gaming) to talk to other iOS device using Bluetooth. So you can potentially write an App over this API to do file transfer between iOS devices, (But Gamekit will not work for iOS to Android)
You can use File Transfer Profile of bluetooth for transferring files between bluetooth devices. This is generic for bluetooth not for Operating system(Android, iOS, Windows, etc.).
Coming to your requirement, in both Android and iOS the framework will provide API to use the bluetooth profiles. Just read about bluetooth profiles and OS framework you will get ideas to design your app.
If you are interested, see the Bluetooth Chat App available at Android Developers website, you will get good knowledge about how to use bluetooth in Android. But i don't know about iPhone(iOS) framework. I experienced the bluetooth in Android and at firmware development for embedded products. If you want more in formation about bluetooth profiles see this link
I hope it may help you.