/*
** Copyright 2007, The Android Open Source Project
**
** Licensed under the Apache License, Version 2.0 (the "License");
** you may not use this file except in compliance with the License.
** You may obtain a copy of the License at
**
** http://www.apache.org/licenses/LICENSE-2.0
**
** Unless required by applicable law or agreed to in writing, software
** distributed under the License is distributed on an "AS IS" BASIS,
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
** See the License for the specific language governing permissions and
** limitations under the License.
*/
package com.android.internal.telephony;
import com.android.internal.telephony.AdnRecord;
/** Interface for applications to access the ICC phone book.
*
*
The following code snippet demonstrates a static method to
* retrieve the IIccPhoneBook interface from Android:
* private static IIccPhoneBook getSimPhoneBookInterface()
throws DeadObjectException {
IServiceManager sm = ServiceManagerNative.getDefault();
IIccPhoneBook spb;
spb = IIccPhoneBook.Stub.asInterface(sm.getService("iccphonebook"));
return spb;
}
*
*/
interface IIccPhoneBook {
/**
* Loads the AdnRecords in efid and returns them as a
* List of AdnRecords
*
* @param efid the EF id of a ADN-like SIM
* @return List of AdnRecord
*/
List getAdnRecordsInEf(int efid);
/**
* Replace oldAdn with newAdn in ADN-like record in EF
*
* getAdnRecordsInEf must be called at least once before this function,
* otherwise an error will be returned
*
* @param efid must be one among EF_ADN, EF_FDN, and EF_SDN
* @param oldTag adn tag to be replaced
* @param oldPhoneNumber adn number to be replaced
* Set both oldTag and oldPhoneNubmer to "" means to replace an
* empty record, aka, insert new record
* @param newTag adn tag to be stored
* @param newPhoneNumber adn number ot be stored
* Set both newTag and newPhoneNubmer to "" means to replace the old
* record with empty one, aka, delete old record
* @param pin2 required to update EF_FDN, otherwise must be null
* @return true for success
*/
boolean updateAdnRecordsInEfBySearch(int efid,
String oldTag, String oldPhoneNumber,
String newTag, String newPhoneNumber,
String pin2);
/**
* Update an ADN-like EF record by record index
*
* This is useful for iteration the whole ADN file, such as write the whole
* phone book or erase/format the whole phonebook
*
* @param efid must be one among EF_ADN, EF_FDN, and EF_SDN
* @param newTag adn tag to be stored
* @param newPhoneNumber adn number to be stored
* Set both newTag and newPhoneNubmer to "" means to replace the old
* record with empty one, aka, delete old record
* @param index is 1-based adn record index to be updated
* @param pin2 required to update EF_FDN, otherwise must be null
* @return true for success
*/
boolean updateAdnRecordsInEfByIndex(int efid, String newTag,
String newPhoneNumber, int index,
String pin2);
/**
* Get the max munber of records in efid
*
* @param efid the EF id of a ADN-like SIM
* @return int[3] array
* recordSizes[0] is the single record length
* recordSizes[1] is the total length of the EF file
* recordSizes[2] is the number of records in the EF file
*/
int[] getAdnRecordsSize(int efid);
}