boolean success = false; try {
IIccPhoneBook iccIpb = IIccPhoneBook.Stub
.asInterface(ServiceManager.getService(\if (iccIpb != null) {
success = iccIpb.updateAdnRecordsInEfBySearch(efType, oldName, oldNumber, newName, newNumber, pin2); }
} catch (RemoteException ex) { // ignore it
} catch (SecurityException ex) { if (DBG)
log(ex.toString()); } if (DBG)
log(\return success; }
private boolean deleteIccRecordFromEf(int efType, String name, String number, String pin2) { if (DBG)
log(\+ \boolean success = false;
try {
IIccPhoneBook iccIpb = IIccPhoneBook.Stub
.asInterface(ServiceManager.getService(\if (iccIpb != null) {
success = iccIpb.updateAdnRecordsInEfBySearch(efType, name, number, \}
} catch (RemoteException ex) { // ignore it
} catch (SecurityException ex) { if (DBG)
log(ex.toString()); } if (DBG)
log(\return success; }
/*** Loads an AdnRecord into an ArrayList. Must be called with mLock held. *
* @param record
* the ADN record to load from * @param results
* the array list to put the results in */
private void loadRecord(AdnRecord record, ArrayList results) {
if (!record.isEmpty()) {
ArrayList
log(\contact.add(alphaTag); contact.add(number); results.add(contact); } }
private void log(String msg) { Log.d(TAG, \} }
三、删除呼叫记录 1、加入权限
在文件AndroidManifest.xml中添加权限
负责存放呼叫记录的内容提供者源码在ContactsProvider项目下: 源码路径:com\\android\\providers\\contacts\\CallLogProvider.java 使用到的数据库在:
/data/data/com.android.providers.contacts/databases/contacts2.db 表名:calls
呼叫记录有三种类型:
来电:CallLog.Calls.INCOMING_TYPE (常量值:1) 外拔:CallLog.Calls.OUTGOING_TYPE(常量值:2) 3、删除指定号码的来电或未接呼叫记录: IncomingCallLogContentObserver observer = new IncomingCallLogContentObserver(new Handler()); observer.setNumber(\
getContentResolver().registerContentObserver(CallLog.Calls.CONTENT_URI, true, observer);
private class IncomingCallLogContentObserver extends ContentObserver { private String number;
public IncomingCallLogContentObserver(Handler handler){ super(handler); }
public void setNumber(String number){ this.number = number; }
public void onChange(boolean paramBoolean){
ContentResolver contentResolver = getContentResolver(); if(number!=null){
Uri localUri = CallLog.Calls.CONTENT_URI;
Cursor cursor = contentResolver.query(localUri, new String[]{\\new String[]{number}, \if(cursor.moveToFirst()){
contentResolver.delete(localUri, \new String[]{cursor.getString(0)}); }
cursor.close(); }
contentResolver.unregisterContentObserver(this); } }