Symbian3/PDK/Source/GUID-05CDE32C-05B3-519F-9937-757A196400F9.dita
changeset 5 f345bda72bc4
parent 1 25a17d01db0c
child 14 578be2adaf3e
equal deleted inserted replaced
4:4816d766a08a 5:f345bda72bc4
     7     Nokia Corporation - initial contribution.
     7     Nokia Corporation - initial contribution.
     8 Contributors: 
     8 Contributors: 
     9 -->
     9 -->
    10 <!DOCTYPE task
    10 <!DOCTYPE task
    11   PUBLIC "-//OASIS//DTD DITA Task//EN" "task.dtd">
    11   PUBLIC "-//OASIS//DTD DITA Task//EN" "task.dtd">
    12 <task xml:lang="en" id="GUID-05CDE32C-05B3-519F-9937-757A196400F9"><title>Integrated Circuit Card (ICC) Access Tutorial</title><shortdesc>This tutorial explains how the <apiname>RMobilePhone</apiname> functions enables a client to know whether ICC access is available and how to be notified when this access is possible. The <apiname>RMobilePhone</apiname> also enables the client to get the functional capabilities of the current ICC. </shortdesc><prolog><metadata><keywords/></metadata></prolog><taskbody> <context><p>An ICC has different names under the different cellular standards. </p> <ul><li id="GUID-3CE9DCD8-2129-5F8C-A4CC-1136CAA7310E"><p>The ICC is called as Subscriber Identity Module (SIM) card in GSM networks. </p> </li> <li id="GUID-37AB1492-E84B-5643-8922-57B16D809FDC"><p>The ICC is called Removable User Identity Module (R-UIM) in CDMA networks. </p> </li> <li id="GUID-7D402BEA-D833-5BC3-B6A0-E94687B9C021"><p>In WCDMA networks, the ICC contains a number of applications one of which is known as the Universal Subscriber Identity Module (USIM) application. </p> </li> </ul> <p>The ICC stores the services available in the SIM Service Table (SST) on a SIM, or the CDMA Service Table on a R-UIM. For DCS1800 systems, there is also the Customer Service Profile (CSP). The services available reflects the ICC applications static capabilities combined with the subscription details of the user. </p> </context> <steps id="GUID-330C5808-2492-57B4-9F70-93E11705E223"> <step id="GUID-6757FD3F-0913-562F-B1D3-6BF917B96777"><cmd>Use <xref href="GUID-AA81AFA4-6FAC-3B0D-A082-BE0AEC58CCA8.dita"><apiname>RMobilePhone::GetIccAccessCaps()</apiname></xref> to find if the ICC access is available. </cmd> <info>Capabilities are described by <xref href="GUID-AA81AFA4-6FAC-3B0D-A082-BE0AEC58CCA8.dita"><apiname>RMobilePhone::TMobilePhoneIccCaps</apiname></xref>. </info> </step> <step id="GUID-8B16C684-0711-59B9-8139-AEF2068C2F1D"><cmd>Use <xref href="GUID-AA81AFA4-6FAC-3B0D-A082-BE0AEC58CCA8.dita"><apiname>RMobilePhone::NotifyIccAccessCapsChange()</apiname></xref> to get the notification of any changes in the capabilities. </cmd> </step> <step id="GUID-FB65BE05-5141-5EFD-9D3B-2E2E62D047F6"><cmd>Get the ICC service table using <xref href="GUID-AA81AFA4-6FAC-3B0D-A082-BE0AEC58CCA8.dita"><apiname>RMobilePhone::GetServiceTable()</apiname></xref>. </cmd> <info>Service table information is returned in a packaged <xref href="GUID-AA81AFA4-6FAC-3B0D-A082-BE0AEC58CCA8.dita"><apiname>RMobilePhone::TMobilePhoneServiceTableV1</apiname></xref> object. This contains the data members that store bitmasks of flags indicating the supported services. </info> </step> </steps> <result><p>Capabilities are described by <xref href="GUID-AA81AFA4-6FAC-3B0D-A082-BE0AEC58CCA8.dita"><apiname>RMobilePhone::TMobilePhoneIccCaps</apiname></xref>. The service table information is returned in a packaged <xref href="GUID-AA81AFA4-6FAC-3B0D-A082-BE0AEC58CCA8.dita"><apiname>RMobilePhone::TMobilePhoneServiceTableV1</apiname></xref> object. This contains the data members that store bitmasks of flags indicating the supported services. </p> </result> <example><title>SIM access example</title> <p>The following code checks if the phone has a SIM that can be accessed, and if so, gets the service table of the SIM. It then checks if Cell Broadcast (CB) message identifiers (a list of identifiers used as a filter to specify which CB messages are accepted and shown to user and which are rejected) can be stored, by testing if the <xref href="GUID-AA81AFA4-6FAC-3B0D-A082-BE0AEC58CCA8.dita"><apiname>RMobilePhone::KSstCBMI</apiname></xref> flag is set in the service table. </p> <p>The code assumes <codeph>iMobilePhone</codeph> is an <xref href="GUID-AA81AFA4-6FAC-3B0D-A082-BE0AEC58CCA8.dita"><apiname>RMobilePhone</apiname></xref> object. </p> <codeblock id="GUID-208F50A9-395F-5CCB-A5B4-5C5601FFDFF3" xml:space="preserve">TUint32 iccCaps;
    12 <task id="GUID-05CDE32C-05B3-519F-9937-757A196400F9" xml:lang="en"><title>Integrated
       
    13 Circuit Card (ICC) Access Tutorial</title><shortdesc>This tutorial explains how the <codeph>RMobilePhone</codeph> functions
       
    14 enables a client to know whether ICC access is available and how to be notified
       
    15 when this access is possible. The <codeph>RMobilePhone</codeph> also enables
       
    16 the client to get the functional capabilities of the current ICC. </shortdesc><prolog><metadata><keywords/></metadata></prolog><taskbody>
       
    17 
       
    18 
       
    19 <context id="GUID-C952CF4B-20C4-4D75-9BF8-CA093F71B9ED"><p>An ICC has different names under the different cellular standards. </p> <ul>
       
    20 <li id="GUID-3CE9DCD8-2129-5F8C-A4CC-1136CAA7310E"><p>The ICC is called as
       
    21 Subscriber Identity Module (SIM) card in GSM networks. </p> </li>
       
    22 <li id="GUID-37AB1492-E84B-5643-8922-57B16D809FDC"><p>The ICC is called Removable
       
    23 User Identity Module (R-UIM) in CDMA networks. </p> </li>
       
    24 <li id="GUID-7D402BEA-D833-5BC3-B6A0-E94687B9C021"><p>In WCDMA networks, the
       
    25 ICC contains a number of applications one of which is known as the Universal
       
    26 Subscriber Identity Module (USIM) application. </p> </li>
       
    27 </ul> <p>The ICC stores the services available in the SIM Service Table (SST)
       
    28 on a SIM, or the CDMA Service Table on a R-UIM. For DCS1800 systems, there
       
    29 is also the Customer Service Profile (CSP). The services available reflects
       
    30 the ICC applications static capabilities combined with the subscription details
       
    31 of the user. </p> </context>
       
    32 <steps id="GUID-330C5808-2492-57B4-9F70-93E11705E223">
       
    33 
       
    34 
       
    35 
       
    36 
       
    37 <step id="GUID-6757FD3F-0913-562F-B1D3-6BF917B96777"><cmd>Use <xref href="GUID-AA81AFA4-6FAC-3B0D-A082-BE0AEC58CCA8.dita"><apiname>RMobilePhone::GetIccAccessCaps()</apiname></xref> to
       
    38 find if the ICC access is available. </cmd>
       
    39 <info>Capabilities are described by <xref href="GUID-AA81AFA4-6FAC-3B0D-A082-BE0AEC58CCA8.dita"><apiname>RMobilePhone::TMobilePhoneIccCaps</apiname></xref>. </info>
       
    40 </step>
       
    41 <step id="GUID-8B16C684-0711-59B9-8139-AEF2068C2F1D"><cmd>Use <xref href="GUID-AA81AFA4-6FAC-3B0D-A082-BE0AEC58CCA8.dita"><apiname>RMobilePhone::NotifyIccAccessCapsChange()</apiname></xref> to
       
    42 get the notification of any changes in the capabilities. </cmd>
       
    43 </step>
       
    44 <step id="GUID-FB65BE05-5141-5EFD-9D3B-2E2E62D047F6"><cmd>Get the ICC service
       
    45 table using <xref href="GUID-AA81AFA4-6FAC-3B0D-A082-BE0AEC58CCA8.dita"><apiname>RMobilePhone::GetServiceTable()</apiname></xref>. </cmd>
       
    46 
       
    47 <info>Service table information is returned in a packaged <xref href="GUID-AA81AFA4-6FAC-3B0D-A082-BE0AEC58CCA8.dita"><apiname>RMobilePhone::TMobilePhoneServiceTableV1</apiname></xref> object.
       
    48 This contains the data members that store bitmasks of flags indicating the
       
    49 supported services. </info>
       
    50 </step>
       
    51 </steps>
       
    52 <result id="GUID-D289A2A3-CFEC-4661-A152-E2C43E695EAE"><p>Capabilities
       
    53 are described by <xref href="GUID-AA81AFA4-6FAC-3B0D-A082-BE0AEC58CCA8.dita"><apiname>RMobilePhone::TMobilePhoneIccCaps</apiname></xref>.
       
    54 The service table information is returned in a packaged <xref href="GUID-AA81AFA4-6FAC-3B0D-A082-BE0AEC58CCA8.dita"><apiname>RMobilePhone::TMobilePhoneServiceTableV1</apiname></xref> object.
       
    55 This contains the data members that store bitmasks of flags indicating the
       
    56 supported services. </p> </result>
       
    57 <example><title>SIM access example</title> <p>The following code checks if
       
    58 the phone has a SIM that can be accessed, and if so, gets the service table
       
    59 of the SIM. It then checks if Cell Broadcast (CB) message identifiers (a list
       
    60 of identifiers used as a filter to specify which CB messages are accepted
       
    61 and shown to user and which are rejected) can be stored, by testing if the <xref href="GUID-AA81AFA4-6FAC-3B0D-A082-BE0AEC58CCA8.dita"><apiname>RMobilePhone::KSstCBMI</apiname></xref> flag is set in the
       
    62 service table. </p> <p>The code assumes <codeph>iMobilePhone</codeph> is an <xref href="GUID-AA81AFA4-6FAC-3B0D-A082-BE0AEC58CCA8.dita"><apiname>RMobilePhone</apiname></xref> object. </p> <codeblock id="GUID-208F50A9-395F-5CCB-A5B4-5C5601FFDFF3" xml:space="preserve">TUint32 iccCaps;
    13 
    63 
    14 User::LeaveIfError(iMobilePhone.GetIccAccessCaps(iccCaps));
    64 User::LeaveIfError(iMobilePhone.GetIccAccessCaps(iccCaps));
    15 TBool cbStorage = EFalse;
    65 TBool cbStorage = EFalse;
    16 
    66 
    17 if (iccCaps &amp; RMobilePhone::KCapsSimAccessSupported)
    67 if (iccCaps &amp; RMobilePhone::KCapsSimAccessSupported)
    24     iMobilePhone.GetServiceTable(status, RMobilePhone::ESIMServiceTable, mobilePhoneServiceTablePckg);
    74     iMobilePhone.GetServiceTable(status, RMobilePhone::ESIMServiceTable, mobilePhoneServiceTablePckg);
    25     User::WaitForRequest(status);
    75     User::WaitForRequest(status);
    26     User::LeaveIfError(status.Int());
    76     User::LeaveIfError(status.Int());
    27     cbStorage = mobilePhoneServiceTable.iServices9To16 &amp; RMobilePhone::KSstCBMI;
    77     cbStorage = mobilePhoneServiceTable.iServices9To16 &amp; RMobilePhone::KSstCBMI;
    28     }
    78     }
    29 </codeblock> </example> </taskbody></task>
    79 </codeblock> </example>
       
    80 </taskbody></task>