Documentation/Maemo 5 Developer Guide/Using Connectivity Components/Introduction

m (1 revision)
(tidy)
 
(9 intermediate revisions not shown)
Line 1: Line 1:
-
= Introduction =
+
The following code examples are used in this chapter:
-
For communications with the outside world, the maemo platform provides frameworks ranging from Bluetooth file transfer to making video calls. This chapter goes through the components important for the maemo application developer.
+
-
==Acquiring Internet Access==
+
* [https://vcs.maemo.org/svn/maemoexamples/tags/maemo_5.0/maemo-examples/example_bluetooth.c example_bluetooth.c]
 +
* [https://vcs.maemo.org/svn/maemoexamples/tags/maemo_5.0/location-example/src/location-example.c location-example.c]
-
''LibConIC'' is the library that must be used by all applications wanting to use Internet connectivity. It takes care of e.g. scanning of available WLAN networks, and setting up the IP network after the user has selected a connection. LibConIC API works together with the maemo connectivity daemon (''ICd'') that handles both WLAN and Bluetooth connections. LibConIC and ICd are described more deeply in section [localhost#sec:maemo_connectivity 9.2].  
+
For communications with the outside world, the maemo platform provides frameworks ranging from Bluetooth file transfer to making video calls. This chapter goes through the components important for the maemo application developer.
 +
==Acquiring Internet Access==
 +
 +
All applications must use the ''LibConIC'' library for Internet connectivity. LibConIC takes care of e.g. scanning of available WLAN networks and sets up the IP network after the user selects a connection. The LibConIC API works together with the maemo connectivity daemon (''ICd'') that handles both WLAN and Bluetooth connections. For more information on LibConIC and ICd, see section [[Documentation/Maemo 5 Developer Guide/Using Connectivity Components/Maemo Connectivity|Maemo Connectivity]].
==VoIP, Instant Messaging and Presence==
==VoIP, Instant Messaging and Presence==
-
The ''[http://telepathy.freedesktop.org/ Telepathy]'' communications framework provides a unified API for presence, messaging and voice/video calls. The list of supported protocols is long: IRC, ICQ, XMPP (Jabber), SIP, MSN etc. The connection manager of Telepathy is expandable, and uses D-BUS for communication. Telepathy usage in maemo is described in more detail in section [localhost#sec:implementing_custom_connection_managers 9.3].
 
 +
The ''[http://telepathy.freedesktop.org/ Telepathy]'' communications framework provides a unified API for presence, messaging and voice/video calls. The list of supported protocols is long: IRC, ICQ, XMPP (Jabber), SIP, MSN etc. The connection manager of Telepathy is expandable, and uses D-Bus for communication. Telepathy usage in maemo is described in more detail in section [[Documentation/Maemo 5 Developer Guide/Using Connectivity Components/Implementing Custom Connection Managers|Implementing Custom Connection Managers]].
==Bluetooth==
==Bluetooth==
-
A high level API for Bluetooth is offered as part of the maemo connectivity subsystem. Using its D-BUS API, a program can find remote Bluetooth devices, such as phones, send files over OBEX object push, and create pairings with remote devices. For these tasks, it is recommended for an application to use this framework, as it not only has a lot simpler API, but makes the applications look and behave consistently.
 
-
For Bluetooth operations that are not supported by the maemo connectivity framework, maemo includes a lower level BlueZ D-BUS API, which is also the main Bluetooth interface for all Linux systems. The BlueZ API has features for practically all aspects of Bluetooth systems, and as a consequence is a lot more complex than the higher level Maemo Connectivity subsystem's offerings.
+
A high level API for Bluetooth is offered as part of the Maemo connectivity subsystem. Using its D-Bus API, a program can find remote Bluetooth devices, for example, phones, send files over OBEX object push, and create pairings with remote devices. For these tasks, this framework is recommended because it has a much simpler API and makes the applications look and behave consistently.
-
Section [localhost#sec:maemo_connectivity 9.2] describes the high level D-BUS API and its use. More information about the BlueZ API can be found at [http://www.bluez.org/BlueZ web site]. The maemo-example package also includes example code about both libraries.
+
For Bluetooth operations that are not supported by the maemo connectivity framework, maemo includes a lower level BlueZ D-Bus API, which is also the main Bluetooth interface on all Linux systems. The BlueZ API has features for practically all aspects of Bluetooth systems, and as a consequence is a lot more complex than the higher level Maemo Connectivity subsystem's offerings.
 +
Section [[Documentation/Maemo 5 Developer Guide/Using Connectivity Components/Maemo Connectivity|Maemo Connectivity]] describes the high level D-Bus API and its use. For more information on the BlueZ API, see the [http://www.bluez.org/BlueZ BlueZ web site]. The maemo example package also includes example code about both libraries.
==OBEX==
==OBEX==
-
Bluetooth devices use OBEX protocol to exchange data objects. Maemo includes libraries to help working with this protocol. For OBEX FTP, the easiest way is to use GnomeVFS's OBEX backend. For more granular control, there is ''libgwobex'', which GnomeVFS uses in its implementation, and an even more low level interface can be found in the OpenOBEX library.
 
-
More about GnomeVFS is written in the GnomeVFS section of this document. Section [localhost#sec:maemo_connectivity 9.2] contains separate subsections for libgwobex and ''OpenOBEX''. For libgwobexAPI, see [http://maemo.org/development/sdks/maemo_5_api_documentation/ Maemo API Reference]. Lots of information about OpenOBEX can be found at the [http://dev.zuckschwerdt.org/openobex/ project's web site].
+
Bluetooth devices use OBEX protocol to exchange data objects. Maemo includes libraries to help working with this protocol. For OBEX FTP, the easiest way is to use GnomeVFS's OBEX backend. For more granular control, there is ''libgwobex'', which GnomeVFS uses in its implementation. The OpenOBEX library provides an lower-level interface.
 +
 
 +
For more information on libgwobex and ''OpenOBEX'', see section [[Documentation/Maemo 5 Developer Guide/Using Connectivity Components/Maemo Connectivity|Maemo Connectivity]] and [http://maemo.org/api_refs/5.0/beta/osso-gwobex/ API references]. For more information on OpenOBEX, see the [http://dev.zuckschwerdt.org/openobex/ project's web site].
 +
 
 +
[[Category:Development]]
 +
[[Category:Documentation]]
 +
[[Category:Fremantle]]

Latest revision as of 12:05, 17 August 2010

The following code examples are used in this chapter:

For communications with the outside world, the maemo platform provides frameworks ranging from Bluetooth file transfer to making video calls. This chapter goes through the components important for the maemo application developer.

Contents

[edit] Acquiring Internet Access

All applications must use the LibConIC library for Internet connectivity. LibConIC takes care of e.g. scanning of available WLAN networks and sets up the IP network after the user selects a connection. The LibConIC API works together with the maemo connectivity daemon (ICd) that handles both WLAN and Bluetooth connections. For more information on LibConIC and ICd, see section Maemo Connectivity.

[edit] VoIP, Instant Messaging and Presence

The Telepathy communications framework provides a unified API for presence, messaging and voice/video calls. The list of supported protocols is long: IRC, ICQ, XMPP (Jabber), SIP, MSN etc. The connection manager of Telepathy is expandable, and uses D-Bus for communication. Telepathy usage in maemo is described in more detail in section Implementing Custom Connection Managers.

[edit] Bluetooth

A high level API for Bluetooth is offered as part of the Maemo connectivity subsystem. Using its D-Bus API, a program can find remote Bluetooth devices, for example, phones, send files over OBEX object push, and create pairings with remote devices. For these tasks, this framework is recommended because it has a much simpler API and makes the applications look and behave consistently.

For Bluetooth operations that are not supported by the maemo connectivity framework, maemo includes a lower level BlueZ D-Bus API, which is also the main Bluetooth interface on all Linux systems. The BlueZ API has features for practically all aspects of Bluetooth systems, and as a consequence is a lot more complex than the higher level Maemo Connectivity subsystem's offerings.

Section Maemo Connectivity describes the high level D-Bus API and its use. For more information on the BlueZ API, see the BlueZ web site. The maemo example package also includes example code about both libraries.

[edit] OBEX

Bluetooth devices use OBEX protocol to exchange data objects. Maemo includes libraries to help working with this protocol. For OBEX FTP, the easiest way is to use GnomeVFS's OBEX backend. For more granular control, there is libgwobex, which GnomeVFS uses in its implementation. The OpenOBEX library provides an lower-level interface.

For more information on libgwobex and OpenOBEX, see section Maemo Connectivity and API references. For more information on OpenOBEX, see the project's web site.