Does anyone know of a faster way of getting data from the Apple Watch that is faster than the Watch Connectivity framework? I'm trying to access the gyroscope and accelerometer data in real time (or as close to real time as I can get) and the Watch Connectivity seems to be operating very slowly. The console in Xcode is able to receive data very fast from the watch. Is Apple using another type of communication that hasn't been opened up to developers?
I'm working in an academic proof-of-concept environment so it doesn't have to be elegant. I've tried some libraries like ilibmobiledevice and node-ios-device that pipe device syslogs into Terminal, but neither seem to be able to support AppleWatch. I've also looked at some UDP options but that looks to be shut down on the AppleWatch as well...
So far, I've found that the only viable solution "should" be the MultipeerConnectivity framework used on macOS, iOS, and tvOS to communicate over WiFi.
Unfortunately, it seems that the reason Apple don't implement this for watchOS is because it is too demanding on the Watch battery, hence why WatchConnectivity and low-level Bluetooth is the only option. Apple have weighed power consumption against transfer rate and clearly decided that MultipeerConnectivity isn't possible.
Related
In one of my application we are implementing live stock market update using socket connection and we have implemented it using in iOS app using Socket.io. But we also developing same app in Watch OS 3.0.
But compiler not able to deal with classes of Core Network prefixed with CFas like (CFHTTPMessage) with error of type CFHTTPMessage undeclared type.
So can any one implemented socket connection on Watch OS 3.0 ?
Is there any other way to accomplish same functionality on Watch OS ?
Is it fine to implement socket connection on Watch independently or we are going wrong way?
I have came across one watch app(Stock Tracker : Real Time Stock) with stock update which working independently without iOS App in background.
Thanks
Apple watch cannot do any network requests itself, everything is done via IPhone using Watch Connectivity framework to send and receive data: https://developer.apple.com/reference/watchconnectivity
Apple watch is quite limited for now, as far as I know even though it was a wifi capabilities, they are not for developers. Those things are battery draining and as it's the major problem for Watch persistent connections (like sockets) are restricted.
As far as I know it's not possible to scan for hotspots in range and read their bssid and signal strengths. This was possible on iOS 4 by using private APIs and not longer possible on iOS 5 without jailbreak. Even if it were possible, the app would be rejected on the App Store. Is that right?
One company that has an indoor positioning system is claiming they can develop this system in iOS. I know for a fact they are scanning for hotspots and signal strengths and then triangulating the signal on their current Android app.
Are there any alternatives I am missing? Their claiming sounds impossible to me but I would love to hear from the people here. I would like to be ready when they demo (although I am expecting a jailbreak or some kind of mock up)
As far as i know this can still be done (using private APIs, of course) by MobileApple80211 framework.
Stumbler code is a good source of information on how to use this framework.
For iOS 5 you'll need a jailbroken iPhone. Guvener Gokce has a very educational blog post on this: iPhone Wireless Scanner iOS5
Just to update the answer: The MobileApple80211 framework has been replaced by MobileWifi.framework. You will need a jailbroken device (supposedly it can't be done using just private API's, hence on a development/enterprise non-jailbroken device).
I'm working on an application that does does lots of iOS <--> OSX communication. For the most part I have this solved.
I'm using CocoaPort to do the communication. Over Wifi this worked nicely and was plenty fast.
I'm using Bonjour to find my server. This required publishing the service with a modded DNSSDObjects-style net service on iOS. Apparently services published over Bluetooth on OSX cannot be seen by iOS, but the other way round works nicely, except that you need to keep the devices paired and connected.
Now my question is, how can I improve the speed of the Bluetooth connection? I'm getting maybe 100kb/s max and that seems to just stop after about 1 minute even though the connection is still open.
I think I need to use the AMP/HS stuff in Bluetooth 3.0 to get a fast connection. My understanding is this creates an AdHoc wireless network between my devices (MBP retina and iPad3, so should be capable of a decent speed.)
According to Wiki, Bluetooth 4.0 includes the HS spec in Bluetooth 3.0 and according to Bluetooth Explorer, the iPad is 4.0 spec. Is there a way, maybe via IOBluetooth, to request a high speed connection?
According to an engineer # Apple, this is not currently feasible. The best you can do is Bluetooth Classic, which is probably the speed I'm getting.
If you want this feature, consider opening a feature request at bugreporter.apple.com.
As far as I know it's not possible to scan for hotspots in range and read their bssid and signal strengths. This was possible on iOS 4 by using private APIs and not longer possible on iOS 5 without jailbreak. Even if it were possible, the app would be rejected on the App Store. Is that right?
One company that has an indoor positioning system is claiming they can develop this system in iOS. I know for a fact they are scanning for hotspots and signal strengths and then triangulating the signal on their current Android app.
Are there any alternatives I am missing? Their claiming sounds impossible to me but I would love to hear from the people here. I would like to be ready when they demo (although I am expecting a jailbreak or some kind of mock up)
As far as i know this can still be done (using private APIs, of course) by MobileApple80211 framework.
Stumbler code is a good source of information on how to use this framework.
For iOS 5 you'll need a jailbroken iPhone. Guvener Gokce has a very educational blog post on this: iPhone Wireless Scanner iOS5
Just to update the answer: The MobileApple80211 framework has been replaced by MobileWifi.framework. You will need a jailbroken device (supposedly it can't be done using just private API's, hence on a development/enterprise non-jailbroken device).
I'm trying to help produce a location-specific iOS app that needs an external trigger to start audio playback when it approaches a given location within the building. (no GPS access)
Has anyone had experience doing something similar? One thought I had was to lay out some bluetooth "transmitters" (like an xbee+arduino) around the building, and if the iPhone's bluetooth was close enough to identify it, it would trigger the audio.
I've never worked with bluetooth or an application of this sort before, so any advice would be much appreciated.
Bluetooth would certainly work, although other methods might, too. The only downside to Bluetooth is that you would either need to work within the APple MFi program for standard Bluetooth or restrict the devices used to the iPhone 4s or later or the iPad 3rd Generation or later so you could use Bluetooth LE (Bluetooth 4.0).
Assuming you can use Bluetooth LE, it's not only possible, Apple demoed one such technology. Once you're signed up as a developer, check out Session 705, Advanced Core Bluetooth, from WWDC 2012. The ending demo is exactly what you're looking for, and the session describes how to do it and provides source code.