Reputation: 6570
Can anyone explain 3G technology from a programmer's perspective? I am a little bit confused. For instance, if I develop a mobile application with Android or IPhone SDK. Shall I concern about the network I used? Or the SDK has a same interface for all those different network(3G,GPRS,CDMA). Moreover, is 3G a specific technology or a set of communication technology? Is it just same as WCDMA?
Thanks.
Upvotes: 4
Views: 750
Reputation: 66565
3G is not a single technology but a family of mobile communications standards. There are different standards in different regions around the globe. In USA CDMA is used (not sure if WCDMA as well) while in Europe WCDMA (or better known as UMTS) is used which was lately upgraded to HSPA. These are both 3G family standards.
GPRS and EDGE which are 2G and 2.5G family standards are the predecessors of the 3G family. From the programmer's perspective the only difference between the listed standards GPRS, EDGE and 3G (UMTS or CDMA) is the connection speed.
Upvotes: 2
Reputation: 69218
To test your application on the emulator under different conditions (though not WiFi at the moment) you can use the emulator console and gsm
command.
the 'gsm data <state>' allows you to change the state of your GPRS connection
valid values for <state> are the following:
unregistered no network available
home on local network, non-roaming
roaming on roaming network
searching searching networks
denied emergency calls only
off same as 'unregistered'
on same as 'home'
Alternatively from the command line:
$ adb emu gsm data roaming # set roaming
$ adb emu gsm data home # set home
Upvotes: 1
Reputation: 25810
I'm sure you have no problem finding definition of 3G via a web search. Here's one from wikipedia.
As a developer, your main concern should be whether the application you are developing should/must ride on top of 3G-level type of connection in terms of bandwidth and/or streaming capabilities. You might need to identify the communication layer i.e packet bearer/wifi or just older 2G (GSM etc) and so on.
You shouldn't need to (unless specifically required) really worry about the underlying technicality of it. For Andriod, the SDK should provide you with enough tools/utilities to build an application which is abstracted from the communication layer.
Upvotes: 3
Reputation: 33187
3G relates to the speed and capabilities of the cellular network. From an API and programming standpoint, there is no difference, however the 3G network will be able to transfer data at a generally faster rate, but also consume more battery power when active.
3G is an umbrella term for multiple technologies, including UMTS, HSPA, HSDPA, EVDO. WCDMA is simply a modulation scheme, but is often analogous to UMTS when used in cellular networks (which define more than simple modulation).
Upvotes: 2
Reputation: 262534
You do not need to care about the specific protocol, but you may very well want to distinguish between WiFi and 3G, and have your program behave differently according to what is available, because WiFi is faster and cheaper. In case of the iPhone, there are even explicit agreements that certain heavy-data activities must only take place over WiFi.
Another idea would be to detect if roaming is active and warn the user about it (even though the phone should already be doing that).
Upvotes: 5