BLE device awareness of the IOS mobile Presence and Absence - ios

We are developing a bluetooth low energy device for a home automation application.
We are facing a major questioning for which we need help.
Here is the use case:
The device needs to have the awareness of the user IOS phone presence or absence in the house.
The BLE devices are working on peripheral role, the IOS should therefore work on central role.
The IOS App is mainly running in background mode.
For the presence detection awareness , we think it can be obvious: the phone whenever entering into the range will discover the device and initiate a connection to inform its presence to the device.
However we are struggling to find the absence detection method.
How shall we implement the absence detection awareness so the device would know when the user is not at home?
Any suggestions are welcome.

I think this can help you ,
During initial sync of your iOS device with peripheral basically when you are writing configuration settings on the BLE you can save the iphone's UUID of the user on ble but still you have to get the UUID of iPhone when user is in the range.

Related

Why is Iphone constantly transmitting a single beacon when it's bluetooth is enabled and it's screen is unlocked?

I've a iOS 10 device in my work place and I got curious about it's bluetooth's weird behaviour. So.. I was playing around with my Android's Beacon simulator App and I noticed that every time I unlocked my IPhone and enabled the Bluetooth a new entry was immediately created in my android's near by beacon's list. Is there a reason for that?
UPDATE 1
- handoff disabled
- AirDrop disabled
- No open apps.
= still got a mysterious broadcast on my Beacon Simulator App.
UPDATE 2
Ok, I was digging into the subject and noticed that the iOS device is not being able to find near by devices in a standard bluetooth discovery.
In the other hand, near-by devices can detected the iPhone and when clicking on his entry in their result's list a popup for pairing shows up on Iphone's screen and as if it was magic the name of the device trying to pair shows up on the iphone's list that is always empty, in this case Huawei P9 but tested with a note 4.
I am the developer of Beacon Simulator. I just want to warn that the app is a Beacon simulator before all, not really a Beacon scanner. I added the scanning part because it was easier to do some tests, for the beacon copy feature and also for future developments.
What the scanner will show you is not necessarily a beacon, but any scannable Bluetooth Low Energy devices, connectable or not. Unfortunately, it is difficult to know if a device is connectable or not with the Android API, so the app lists everything.
Since the icon represents a standard Bluetooth logo, it means it is a signal not recognized by the app (here, it isn't an iBeacon nor AltBeacon nor Eddystone beacon). So either it is a non standard beacon, or simply a signal to advertise a possible connection to the device. When a connectable device broadcast its presence, the signal uses the same channel and protocol than the one used by beacons. A connectable device will advert itself as connectable, but as said, the Android API erase this difference, unfortunately.
So what you see is not necessarily a beacon, but maybe simply your iPhone broadcasting its presence as a connectable device. Maybe I should add some disclaimers in the app.

Beacon Pairing iOS with only one UUID

I'm working on my Beacon project and I'm looking for best way to solve my problem.
I have few central device declared as Beacon (not iBeacon UUID).
My iOS app is working as peripheral mode in Background and Foreground.
I would like send specific data (chain characters) to be written in my app during background and foreground work.
I know that UUID is hiden by iOS when app is in background.
However, UUID is hiden only for devices which were not paired before.
Can i have a issue to implement list of UUID devices in my iOS list devices to be paired automatically when user downloaded the app ?
If not, Can I set one same UUID for my all central devices (but with with different minor and major values) and ask for first pairing when the app is turn as foreground for the first time with near central devices detected ?
Best regards,
Greg
My beacons are configured as central and they're scanning continually.
When they found iPhone's with my apps running as peripheral, my beacons try to write a value into my app.
I can't understand how implement my app (working as peripheral) to receive this value in background mode without pairing ?
--> Can I send value to my app without user pairing ?
If not
--> Can I send value to my app without user pairing including manually all my UUID's (central beacons) in the code of my app ?

iBeacon transmission when app is closed?

We would like to use some configuration of the iBeacon , where the user's iPhone will advertise its services, but when the app is closed.
So when a user come across a hardware beacon, it will recognise the user's iPhone(as a beacon) without opening the app, and even connect to it .
I could find here many opinions about that, but i wonder if there are any news with the iOS8 ,and if there is a clear answer for that from Apple ?
A couple of points:
Bluetooth beacons, iBeacons included, are transmit only. They don't see or "recognize" other beacons or phones. The statement "when a user come across a hardware beacon, it will recognise the user's iPhone(as a beacon)" is not possible with the technology regardless of whether the app on the phone is in the foreground or the background.
iBeacons are supported on iOS devices with version 7.x and 8.x of the operating system. On all these versions, however, beacon transmission from the iOS device is only supported when the app is in the foreground. See here for details.

bluetooth low energy on standby mode in iOS?

I have read the docs about the BLE for iOS, and i could see that every device has its UUID instead of mac adress for the BLE.
My question ,in which there is no answer to on the docs, is- when you turn on the bluetooth on the device ( without opening any app) , so the device's bluetooth is on , what does it advertise then, and could I discover that device or get its UUID, while his bluetooth is on,but without any app that is open.
I am pretty sure that when the BLE is on, you can discover that device, or awake him, but I wonder what data can I get from him while its on without an app .
(same for Android.. )
iOS does not advertise any Bluetooth Low Energy services that are visible to another iOS device without an app running. Once an app advertises a service you will see additional services available - device information, time service, battery level.
If you are using different Bluetooth hardware to scan then you may see some advertisements without an app but the reported UUID of an iOS device changes every 15 minutes for privacy reasons - See this answer - Corebluetooth, How to get a unique UUID?

iOS: Automatically reestablishing Bluetooth BLE connection when in range

Is is possible to "pair" a Bluetooth BLE device such that they automatically connect when in range? (ie. an iPhone app sets up a connection to the Bluetooth device and from then on, the iPhone automatically reconnects to the device if in range, even if the app hasn't been opened in days and is fully closed).
Once reconnected, the device could either using Event Backgrounding to prompt the user to open the app or otherwise interact with a possibly backgrounded app (as described here).
Anecdotally, I've used Bluetooth keyboards that automatically reconnect to my laptop when back in range. These are not necessarily BLE devices, is this something that's possible in BLE land?
Could this be possible if the iPhone were the server instead of the device? What if this were done using traditional Bluetooth under the MFI program?
There are number of relevant comments here and on the Apple Bluetooth-dev mailing list, but nothing that cleared it up for me. Thank you for your help.
I posted my question on Bluetooth-dev, I'm leaving the response here for posteriority: http://lists.apple.com/archives/bluetooth-dev/2012/Sep/msg00117.html

Resources