Share iPhone's internet connection with a non apple device. Tethering - iphone

I have a non Apple device used to process some data. It has bluetooth support.
It can be paired with the iPhone via bluetooth.
The device must use iPhone's internet connection to access a remote server.
See the flow:
I pair the device with the iPhone in Settings->Bluetooth.
I use ExternalAccessory framework to send data to the paired device.
The device processes the data and uses iPhone's internet connection to send the data to a remote server.
There is no problem in pairing the device to iPhone ( no jailbreak, by the way ).
Also, the firmware of the device is to be modelled in order to sent https requests via a valid internet connection.
The problem is the tethering, that will allow the iPhone to share it's WIFI or 3G connection with the device.
All I have found so far is tethering the iPhone with a computer, but no word about other non apple devices.
Any idea/link?
Take into account:
The device has bluetooth hardware and can be legally paired with the iPhone, no jailbreak needed.
The data processed by the device MUST avoid the application, and go directly to the remote server: I am not allowed to get the data from the device and use NSURLConnection to pass it to the remote server.
Please suggest a way to share iPhone's internet connection with non apple device.

Related

Simultaneous wifi and 3G connection on mobile

I am developing a peripheral that uses WiFi and Embedded browser, the peripheral looks like an access point to iPhone (and android) but it is not connected to internet. When I connect my phone to this peripheral via Wifi, I loose internet connection on the phone using 3G.
Is there a way to avoid this? I have control over the software of the peripheral so I can change the IP addresses, gateways etc.
Are you going to connect your peripheral to the internet via iPhone's 3G network? If so, why don't you use iphone's Personal hotspot feature?
I believe you can't have both wifi & 3G connection without using Personal hotspot mode.
You can only simulate 3g on your device. In iOS 6 or higher open Settings->Developer->Network Link Conditioner-Status-Choose what you want.

use 3g for internet when connected to adhoc wifi (using private API's)

First and foremost,
I am looking for a resource to use Private API's.
this is an enterprise application and will never go to the app store
I need to take as much configuration out of the users hands as possible.
That being said, I have a device that an ipad will be connected to and communicate with via an adhoc wifi network supplied by the device. the ipad connects to this device and sends raw data to it via socket connections. I also need to connect to the internet for data syncing.
80% of the time, the ipad will be connected to this adhoc wifi device. Management software on the ipad does not allow the user to adjust wifi settings so I am trying to make sure I am connected to my device without limiting my server syncing. I know I can determine the connection using apples Reachability class, this is not what i am looking for. I need to use BOTH 3g AND wifi.
Is there a way to enforce this in code? Or is there a resource for the private API's that I can look at to find a way?
This will be in iOS 5 and the most preferable method would be to just route my http requests via some private api method to use 3G and let the socket requests use wifi to the adhoc device.
code samples would be awesome, links / class names to research would be very much appreciated.
and once again this is not going into the app store, it is an enterprise app
the resolution i found was to assign an ip in the privately assigned ip range the ipad uses (169.254.x.x) to the adhoc device then let the ipad determine an ip. Then see if i can open a socket connection to the device (to determine if its available) and then issue a print.
Going this route, i am still able to use 3g data as well as communicate with the device via wifi.

iPhone UDP ad hoc datas transfert

I'm trying to make an iPhone application to communicate with an other wireless device.
The other device can send datas via UDP sockets. I just want to know if it is possible to receive the informations on the iPhone, without access point on the network (just an iPhone and the wireless device), and how if it is.
I was looking at UDPecho, by apple, and I think it could be useful.
If anyone had some idea, just let me know what you're thinking about
iPhone 4 with iOS 4.3 can create a Wi-Fi network using the Personal Hotspot feature, which your "other device" could join.
A Verizon iPhone with 4.2.6 may also be able to do this.
Earlier iPhone models can't use the Personal Hotspot feature, regardless of the version of iOS.

Is it possible to stream music over a bluetooth p2p connection using iPhones

I am trying to connect multiple iPhones using bluetooth. I was thinking of having a server/client system. I just want to know upto how many devices can be connected using bluetooth? I am not able to find a reliable answer online.
Also If you know of any good tutorials regarding this it would great if you could point me to it.
Thanks
AC
A single Bluetooth device can connect with upto 7 devices in a piconet. If a device can do scatternet it can be connected to even more devices..
Application level connection can happen only if both devices supports the required profiles and corresponding role.
If you are trying to stream music , the profile to be used is A2DP , one device will need to be the A2DP source and other A2DP sink,
In case of Iphone it supports only A2DP source. So 2 iPhone will not connect with each other.
you can implement the bluetooth profile for this (A2DP), the big issue here is not the music streaming but the roles, you iPhones are going to play, for instance, you can be a "sound-source" and transfer audio to a "sound-sink" device, those roles have to be previously defined on the handshake and paring action, furthermore, if you are able to browse the properties of an iPhone you will get what port and what roles are supported, sadly muss I said, there is no sink role supported jet for iPhones, so the most that you can get till now is stream audio from iPhone to another bt capable device (speakers, pc, headset unit, etc) more info can be reached on the official bluetooth web site and what iOS until now supports.

Identifying iPhone OS's on a Network and Sending Push Notifications

Can you identify devices on your network as an iPhone OS device easily? Can you send push notifications to devices identified as using the iPhone OS on your network without a a target app?
Is is possible to identify which devices on a network are using the iPhone OS?
With this information, is it possible to send push notifications to these devices?
From my understanding, your application server will contact APNs, which will contact the users. So, the above would be impossible. Can someone confirm this for me?
If you look at the Apple's documentation for the UIDevice class :
http://developer.apple.com/iphone/library/documentation/uikit/reference/UIDevice_Class/Reference/UIDevice.html
For example, [[UIDevice currentDevice] model] wil give you strings like #”iPhone” and #”iPod touch”.
Then in your App Delegate method "application:didRegisterForRemoteNotificationsWithDeviceToken:", you can store the device model with the device token on your server.
You will be able to send push notification to a given model with that. If you use UrbanAirship, you could use the "tag" option.
As far as I know, iPhones don't announce their presence in a special way within the network. You might be able to guess what devices are iPhones on your local network by looking at the MAC address of responding hosts.
No, push notifications are delivered over an encrypted connection between iPhone and APN servers and always target a specific application on a device. You're not able to send a push notification to arbitrary devices on your network (at least not without hacking the devices).