Im' trying to implement an App which is able to conect to a remote GSM Modem.
To etablish something like this I need a dialin process in the app which call the "Phone number" of the remote Modem and exchange data with it. On the GSM Modem is no posibility to connect the web. It can only accept incoming calls and response.
Does anyone know if there is a practiacal solution?
No not really, there is no way to use the any of the phone functions (meaning voice/data) other the internet connection.
You can't dail a number and then send data of the line, because as soon as you dail the phone app closes you app (or backgrounds it) and takes over.
Related
I need to make an iPhone application which connects to a first Wifi network, receives some files from a specific device and then sends these files to a computer being connected on another Wifi network.
I see two possible approaches :
1. to send the files to the computer, my app disconnects from the first Wifi network and connects again to the second network
2. my iPhone app is able to connect itself to two different Wifi networks.
I believe the second solution above is not possible on iOS and the first one needs to use private APIs.
Do you see for other solutions for me to receive data from a device connected to a Wifi network and then send data to another device connected to another Wifi network ?
Thank you very much for your help.
You cannot programmatically modify the selected WiFi on iOS without using private API. I think this post describes what you want.
I think it is very unlikely for Apple to change this, therefor I suggest using a web service to upload the data to and a push notification to the computer to tell it to download the data once it has finished uploading.
I want to connect a robot, via Bluetooth, with an iPhone (4S or more) via Bluetooth low energy (BLE) 4.0. This robots require to send all the notifications of the iPhone to the device.
For example: If the iPhone gets a new email, I must send the event to the robot, and it will blink an LED. Stop.
I want to know if the iOS Bluetooth APIs of the Bluetooth framework can do this, or better, can share the Internet connection or whatever that can do this work.
I'm asking this, because I have heard that the APIs have some restrictions.
PS: ANY solution that can do this is very accepted (no Wi-Fi connection solution).
Bluetooth LE would be the way you want to go here, because standard Bluetooth requires your device to be MFi-compliant. Standard Wi-Fi could also work, if you're able to require the presence of the supporting network.
As of iOS 6.0, you can set up your iPhone as a Bluetooth LE peripheral, which would allow it to send notifications to your device, if it is configured in a central role. That would be a pretty power-efficient way of updating your device with new data.
However, there's one large hurdle to doing what you want here. iOS applications have no access to system-wide notifications, so you won't be able to listen for incoming emails or other notifications like that. You'll be able to send data to your device via Bluetooth LE, but you're not going to know when emails come in so that you could send that to your device.
With bluetooth 4, you could control a robot, as well as create a "notification" bot. It could be done quite easily. However as mentioned, you can't access system wide notifications in iOS.
However, you could use an external solution to listen for system notifications and then an API to listen a singular encoded notification and have your app listen to that.
One such system is https://ifttt.com (no affiliation)
There are also some great plug and play BLE options for rapid prototyping.
You can do it. A simple solution would be let a phone check your email periodically. Don't rely or try to use external Apple applications to do that, but use services provided by your mail.
In the case of Gmail, try to go to https://mail.google.com/mail/feed/atom. If you are logged in your Gmail, you will see the unread mail in XML format. The way you would login using a URL is: https://username:password#mail.google.com/mail/feed/atom
So what you can do is periodically parse the output and when <fullcount>0</fullcount> value changes call your robot service via BLE which should act as a callback for this specific event.
I would like make an app like whatsapp but i dont know how to transfer data if i dont know the ip or location of the other device.
My idea is like whatsapp, get the ip device and send it the data... and dont use email.
My problem is that i dont know how get the ip of the device, how to send the data.
My idea is use a server and when you use the app save your iphone number or telephone number like primary key in database from server, foreign key ip from device.
Is good idea???
How i can get the ip of the device?
Wich class use to send NSData to the server??
Thanks
You should not use the Ip of the device, since most device are used on a cellular network which could be using NAT.
This would mean that only one IP address is used for multiple device.
Whatsapp use an XMPP server as there backend, which is just an IM server.
When the App get background they disconnect from the IM server and when the user receives a messages the server will just send them a push notification.
XMPP is open source and can easily be modified and there are a lot op opensource libraries to use. Just have a look on http://xmpp.org/
As far as I understand, the only way to place a call from an app is using the tel:// URL scheme, which launches the native phone app. But the Truphone app available on the App Store can place VOIP call even when there is no WIFI available. They say they do it by making a GSM call to their server and routing the VOIP packets over the internet from there.
Rerference: http://blog.truphone.com/2008/12/truphone-on-the-iphone-now-works-without-wi-fi.html
How can I do something similar in my app?
As far as the phone's cell hardware is concerned this isn't a call. Its just a 2 way data stream. They are activating the mic and encoding its input and sending that stream to their server, while they receive another stream and play it on the speaker. Their servers then decode the streams and then connect it to a normal phone system so you can talk to someone who doesn't use their service.
Do you want to allow users to contact people outside your userbase? If so that's going to require you to set up a server to decode your streams and then find a VOIP provider that has an API so your server can stream to them. This is possible but it costs.
If you only want user to user this can be done for free but its almost identical to the previous option, just take out the VOIP provider.
I want to be able to send files from an iPhone app to a computer. What would be the easiest way of doing this?
I've made simple server client programs before, but in those, the client has always needed to connect to the server before being able to receive messages from it. There is an app for the iPhone called iSimulate, where you put a server on a Mac (the iPhone simulator), and then you use the iSimulate app of an iTouch or iPhone to send touch events to the server. This app does not require you to type in an ip-address. Instead it presents a list of available computers that have this server up and running.
How exactly is this being done? Can a server broadcast a message over a network, w/o anyone being connected to the server? How does that work? How does a client listen for that broadcast?
Here's a video of the app I'm talking about:
http://www.youtube.com/watch?v=N3Qpd1ycZh4
alt text http://a1.phobos.apple.com/us/r1000/051/Purple/7b/07/70/mzl.mvwjifyc.320x480-75.jpg
That app may be using Bonjour.
I've seen similar apps use a peer-to-peer Bluetooth connection to exchange files between a iPhone and a desktop.