Execute Gesture Event through code
Hi,
I am working on BOSE AR iOS SDK 4.0.8.
I am able to detect Gesture events like tap, doubleTap etc.
Is there any way to trigger those events programatically.
e.g. headNod should trigger button tap event and headShake should trigger touchAndHold event.
Thanks in advance,
- Ashitosh
I am working on BOSE AR iOS SDK 4.0.8.
I am able to detect Gesture events like tap, doubleTap etc.
Is there any way to trigger those events programatically.
e.g. headNod should trigger button tap event and headShake should trigger touchAndHold event.
Thanks in advance,
- Ashitosh
0
Comments
To clarify gestures:
QC 35 II's and Frames: doubleTap, headNod, headShake
NC700's: touchAndHold, headNod, headShake
Best,
n
Thanks for your reply.
We are right now focusing on Bose frames.
The idea behind our app is to use headNod to answer and headShake to reject an incoming call through Bose frames.
Note - This behavior is similar to the actions executed by a single tap and touchandHold on Bose Frames except that we do not want to touch the button at all.
We are able to perform these actions in our Android code but are unable to do so in IOS (using Swift). Of course, ideally we would like to accomplish these actions through the Bose AR SDK.
Incidentally, could you please let us know as soon as the touchAndHold detection starts working with Bose frames?
Thanks,
Ashitosh
This functionality will not work with Bose Frames. The NC700's has a capactive touch that enables the touchAndHold, that the Frames do not have. The current hardware designs doesn't permit the touchAndHold for the Frames. I recommend replacing it with a doubleTap. We also don't recommend using singleTap.
Can you point out the trouble you are having with Swift?
When user receives a call:
- When we detect a head nod, what command do we issue to accept the call?
Note - If the user presses the button this action occurs. We are trying to accomplish the same effect without the user actually pressing the button.
- When we detect a head shake, what command do we issue to reject the call?
Note - If the user does a touchAndHold (more like a pressAndHold) on the button. this does happen on BoseFrames. Again we would like to reject the call without the user actually touching the button.
Ideally we would like to execute these actions using the Bose SDKs.
We are able to accomplish this In Android with custom coding.
We have done some research in Swift and it does not appear that it supports a similar capability.
Example of what I mean: on the NC 700s double tap on the right side to accept a phone call, and double tap to end a phone call. This functionality automatcially works out of the box. On the Frames it's a press to the physical button on the right side, and on the QC 35 IIs it's similar.
If you're looking to replace that functionality with gestures like "Affirmative" (head nod), the problem you will run up against is an architectural and OS-level one.
For one, Bose AR functionality is application specific and initiated via an application which needs to be open and running for the functionality to continue to work.
So, you'd need to develop an application which intercepted system level APIs for telephony to recognize a gesture such as "Affirmative" (head nod) and then call the relevant telephony api to accept a call, for example, and then a user would need to open that application, initiate a Bose AR BLE connection via the application and then leave that application running in order to have that scenario function the way you've described.
It does seem possible, but the parts you need to explore lie squarely in the iOS side of things, related to OS/system level APIs and how applications are allowed interact with them.
Please let us know if there's any additional detail about your potential use case you could share with us to help inform if we can help further!
Cheers,
Michael @ Bose
Can you please send me your email address? Is it [email protected]
We have prepared a presentation that describes our planned app and how it works (in Android).
My email address is [email protected]
Thanks
Kishor Bapat
Thanks for your question, we'll reach back directly with the information you requested.
@[email protected]
Have not received your email address so I am unable to send you the presentation that I spoke about earlier.
In a nutshell here is what we are doing on Android.
- You turn on the Bose Frames and start our app.
- When you receive a call you hear an announcement telling you who is calling.
- To answer the call you nod your head.
- To reject the call, you shake your head.
Essentially you are able to use your phone for calls without ever taking it out of your pocket. Totally hands-free and ear-free. You do not need to use the gold button on the frames at all.
We are planning to submit the Android app to Bose this week.
We would like to create a similar IOS app as soon as possible. The head shake and head nod work on IOS. However we cannot make IOS accept or reject the call at this point. So what we would like to do is send the equivalent command of a button press when a head nod is detected and a press and hold when a head shake is detected.
Hope this clarifies my earlier question.
Bear in mind that out of the box Frames and many other Bluetooth products already have the functionality to answer calls via pushing the bluetooth button. Again this is by design to protect privacy and to make the experience consistent across products. Below the covers, it's part of how Apple has created APIs for handling button pushes on Bluetooth devices.
Similar on most devices:
https://www.bose.com/en_us/support/article/making-or-answering-phone-calls-with-bluetooth-enabled-models-a20.html
While you can use a callback or delegate to intercept Bose AR gestures to run a method when a gesture happens, you can't simulate the button push on the Bluetooth device or call any API on the Apple System. Apple doesn't directly allow developers to access to the CALL system apis. The concern is centered around protecting users privacy, and that's why calls can only be answered by a actual button push on a connected bluetooth device.
https://stackoverflow.com/questions/5219526/programmatically-answer-an-incoming-phone-call-on-iphone
Alternatively, if you want to build your own VoIP system then you can control the calls. Developers may also build a VoIP call system and have some limited interaction with the native system UI. But I think your use case isn't going to be supported with that scenario.
CallKit is a framework that aims to improve the VoIP experience by allowing apps to integrate with the native phone UI
https://www.raywenderlich.com/1276414-callkit-tutorial-for-ios#toc-anchor-001
Good luck with your project.
@[email protected]