×
Namespaces

Variants
Actions
(Difference between revisions)

Archived:Hiding unnecessary access points from user display on Symbian

From Nokia Developer Wiki
Jump to: navigation, search
hamishwillee (Talk | contribs)
m (Hamishwillee - Bot change of template (Template:KnowledgeBase) - now using Template:ArticleMetaData)
hamishwillee (Talk | contribs)
 
(4 intermediate revisions by 2 users not shown)
Line 1: Line 1:
[[Category:Symbian C++]][[Category:Networking]][[Category:Technical Solution]][[Category:S60 3rd Edition, Feature Pack 2 ]]
+
{{Archived|timestamp=20120313110806|user=roy.debjit| }}
__NOTOC__
+
[[Category:Symbian C++]][[Category:Networking]][[Category:S60 3rd Edition FP2]]
__NOEDITSECTION__
+
{{ArticleMetaData <!-- v1.2 -->
{{KBTS}}
+
{{ArticleMetaData
+
|id=TSS001159
+
|platform=S60 3rd Edition, FP2
+
|devices=Nokia N96
+
|category=Symbian C++
+
|subcategory=Networking
+
|creationdate=October 30, 2008
+
|keywords=CApSettingsHandler, RCmManager
+
 
+
 
|sourcecode= <!-- Link to example source code (e.g. [[Media:The Code Example ZIP.zip]]) -->
 
|sourcecode= <!-- Link to example source code (e.g. [[Media:The Code Example ZIP.zip]]) -->
 
|installfile= <!-- Link to installation file (e.g. [[Media:The Installation File.sis]]) -->
 
|installfile= <!-- Link to installation file (e.g. [[Media:The Installation File.sis]]) -->
|sdk=<!-- SDK(s) built and tested against (e.g. [http://linktosdkdownload/ Nokia Qt SDK 1.1]) -->
+
|devices= Nokia N96
|devicecompatability=<!-- Compatible devices (e.g.: All* (must have GPS) ) -->
+
|sdk= <!-- SDK(s) built and tested against (e.g. [http://linktosdkdownload/ Nokia Qt SDK 1.1]) -->
|signing=<!-- Empty or one of Self-Signed, DevCert, Manufacturer -->
+
|platform= S60 3rd Edition, FP2
|capabilities=<!-- Capabilities required (e.g. Location, NetworkServices.) -->
+
|devicecompatability= <!-- Compatible devices (e.g.: All* (must have GPS) ) -->
|author=[[User:Technical writer 1]]
+
|dependencies= <!-- Any other/external dependencies e.g.: Google Maps Api v1.0 -->
 +
|signing= <!-- Empty or one of Self-Signed, DevCert, Manufacturer -->
 +
|capabilities= <!-- Capabilities required by the article/code example (e.g. Location, NetworkServices. -->
 +
|keywords= CApSettingsHandler, RCmManager
 +
|language= <!-- Language category code for non-English topics - e.g. Lang-Chinese -->
 +
|translated-by= <!-- [[User:XXXX]] -->
 +
|translated-from-title= <!-- Title only -->
 +
|translated-from-id= <!-- Id of translated revision -->
 +
|review-by= <!-- After re-review: [[User:username]] -->
 +
|review-timestamp= <!-- After re-review: YYYYMMDD -->
 +
|update-by= <!-- After significant update: [[User:username]]-->
 +
|update-timestamp= <!-- After significant update: YYYYMMDD -->
 +
|creationdate= 20081030
 +
|author= [[User:Technical writer 1]]
 +
<!-- The following are not in current metadata -->
 +
|subcategory= Networking
 +
|id= TSS001159
 
}}
 
}}
 
+
 
 
==Description==
 
==Description==
  
Line 35: Line 41:
 
The communications database in, for example, the Nokia N96 is constructed as follows:
 
The communications database in, for example, the Nokia N96 is constructed as follows:
  
  Access Point Name   IAP ID   WAP ID
+
  Access Point Name IAP ID WAP ID
         Easy WLAN         1         1
+
         Easy WLAN 1 1
               IPDC         2        -
+
               IPDC 2        -
           internet         3         2
+
           internet 3 2
               mms         4         3
+
               mms 4 3
               wap         5         4
+
               wap 5 4
  
APEngine returns the WAP ID to application. If the application needs to have an IAP ID, then <tt>CApUtils::IapIdFromWapIdL()</tt> can be used for conversion between WAP ID and IAP ID. When accessing the communications database directly (not using CMManager or APEngine), the same can be achieved by reading the WAP ID from the <tt>WAP_ACCESS_POINT</tt> table and then mapping that ID to the correct IAP ID:
+
APEngine returns the WAP ID to application. If the application needs to have an IAP ID, then {{Icode|CApUtils::IapIdFromWapIdL()}} can be used for conversion between WAP ID and IAP ID. When accessing the communications database directly (not using CMManager or APEngine), the same can be achieved by reading the WAP ID from the {{Icode|WAP_ACCESS_POINT}} table and then mapping that ID to the correct IAP ID:
  
 
<code cpp>
 
<code cpp>

Latest revision as of 03:42, 15 June 2012

Archived.pngArchived: This article is archived because it is not considered relevant for third-party developers creating commercial solutions today. If you think this article is still relevant, let us know by adding the template {{ReviewForRemovalFromArchive|user=~~~~|write your reason here}}.

Article Metadata
Tested with
Devices(s): Nokia N96
Compatibility
Platform(s): S60 3rd Edition, FP2
S60 3rd Edition FP2
Article
Keywords: CApSettingsHandler, RCmManager
Created: User:Technical writer 1 (30 Oct 2008)
Last edited: hamishwillee (15 Jun 2012)

[edit] Description

On some S60 3rd Edition, Feature Pack 2 devices there is a hidden access point called "IPDC" which is used only by the mobile TV engine and should not be presented to end users.

Depending on the method used for access point handling, this AP may be listed as one of the connection points. Typically, the problem occurs when using the deprecated Access Point Engine (APEngine) API.

[edit] Solution

These applications should deal with access points in S60 3rd Edition, Feature Pack 2 by using the Connection Method Manager (CMManager) component. If CMManager is used, the IPDC access point will remain hidden.

APEngine is deprecated from S60 3rd Edition, FP2 onwards and using it is discouraged. However, if its still required for compatibility reasons, note the following things:

The communications database in, for example, the Nokia N96 is constructed as follows:

Access Point Name IAP ID WAP ID
        Easy WLAN 1 1
             IPDC 2         -
         internet 3 2
              mms 4 3
              wap 5 4

APEngine returns the WAP ID to application. If the application needs to have an IAP ID, then CApUtils::IapIdFromWapIdL() can be used for conversion between WAP ID and IAP ID. When accessing the communications database directly (not using CMManager or APEngine), the same can be achieved by reading the WAP ID from the WAP_ACCESS_POINT table and then mapping that ID to the correct IAP ID:

 // commDb is a pointer to CCommsDatabase
CCommsDbTableView* wapTable = commDb->OpenViewMatchingUintLC(
TPtrC(WAP_ACCESS_POINT),
TPtrC(COMMDB_ID), wapID );
 
User::LeaveIfError( wapTable->GotoFirstRecord() );
 
TBuf<64> wapBearer;
wapTable->ReadTextL(TPtrC(WAP_CURRENT_BEARER), wapBearer);
 
if ( wapBearer != TPtrC(WAP_IP_BEARER) )
{
User::Leave( KErrInvalidBearerType );
}
 
CCommsDbTableView* bearerTable = commDb->OpenViewMatchingUintLC(
TPtrC(wapBearer),
TPtrC(WAP_ACCESS_POINT_ID),
wapID );
 
User::LeaveIfError( bearerTable->GotoFirstRecord() );
bearerTable->ReadUintL(TPtrC(WAP_IAP), iapID );
CleanupStack::PopAndDestroy(2); // bearerTable, wapTable

[edit] See also

S60 Platform: Access Points Example with Roaming Support - Example application for access point handling on S60 3rd and 5th Edition devices, including application-level roaming using service network access points (SNAPs), supported from S60 3rd Edition, FP2 onwards.

This page was last modified on 15 June 2012, at 03:42.
80 page views in the last 30 days.
×