1/* 2** Copyright 2007, The Android Open Source Project 3** 4** Licensed under the Apache License, Version 2.0 (the "License"); 5** you may not use this file except in compliance with the License. 6** You may obtain a copy of the License at 7** 8** http://www.apache.org/licenses/LICENSE-2.0 9** 10** Unless required by applicable law or agreed to in writing, software 11** distributed under the License is distributed on an "AS IS" BASIS, 12** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13** See the License for the specific language governing permissions and 14** limitations under the License. 15*/ 16 17package com.android.internal.telephony; 18 19import com.android.internal.telephony.uicc.AdnRecord; 20 21 22 23/** Interface for applications to access the ICC phone book. 24 * 25 * <p>The following code snippet demonstrates a static method to 26 * retrieve the IIccPhoneBook interface from Android:</p> 27 * <pre>private static IIccPhoneBook getSimPhoneBookInterface() 28 throws DeadObjectException { 29 IServiceManager sm = ServiceManagerNative.getDefault(); 30 IIccPhoneBook spb; 31 spb = IIccPhoneBook.Stub.asInterface(sm.getService("iccphonebook")); 32 return spb; 33} 34 * </pre> 35 */ 36 37interface IIccPhoneBook { 38 39 /** 40 * Loads the AdnRecords in efid and returns them as a 41 * List of AdnRecords 42 * 43 * @param efid the EF id of a ADN-like SIM 44 * @return List of AdnRecord 45 */ 46 List<AdnRecord> getAdnRecordsInEf(int efid); 47 48 /** 49 * Replace oldAdn with newAdn in ADN-like record in EF 50 * 51 * getAdnRecordsInEf must be called at least once before this function, 52 * otherwise an error will be returned 53 * 54 * @param efid must be one among EF_ADN, EF_FDN, and EF_SDN 55 * @param oldTag adn tag to be replaced 56 * @param oldPhoneNumber adn number to be replaced 57 * Set both oldTag and oldPhoneNubmer to "" means to replace an 58 * empty record, aka, insert new record 59 * @param newTag adn tag to be stored 60 * @param newPhoneNumber adn number ot be stored 61 * Set both newTag and newPhoneNubmer to "" means to replace the old 62 * record with empty one, aka, delete old record 63 * @param pin2 required to update EF_FDN, otherwise must be null 64 * @return true for success 65 */ 66 boolean updateAdnRecordsInEfBySearch(int efid, 67 String oldTag, String oldPhoneNumber, 68 String newTag, String newPhoneNumber, 69 String pin2); 70 71 /** 72 * Update an ADN-like EF record by record index 73 * 74 * This is useful for iteration the whole ADN file, such as write the whole 75 * phone book or erase/format the whole phonebook 76 * 77 * @param efid must be one among EF_ADN, EF_FDN, and EF_SDN 78 * @param newTag adn tag to be stored 79 * @param newPhoneNumber adn number to be stored 80 * Set both newTag and newPhoneNubmer to "" means to replace the old 81 * record with empty one, aka, delete old record 82 * @param index is 1-based adn record index to be updated 83 * @param pin2 required to update EF_FDN, otherwise must be null 84 * @return true for success 85 */ 86 boolean updateAdnRecordsInEfByIndex(int efid, String newTag, 87 String newPhoneNumber, int index, 88 String pin2); 89 90 /** 91 * Get the max munber of records in efid 92 * 93 * @param efid the EF id of a ADN-like SIM 94 * @return int[3] array 95 * recordSizes[0] is the single record length 96 * recordSizes[1] is the total length of the EF file 97 * recordSizes[2] is the number of records in the EF file 98 */ 99 int[] getAdnRecordsSize(int efid); 100 101} 102