在Android中以编程方式删除联系人,可以使用Contacts Provider API。以下是一个简单的示例代码,用于删除指定联系人:
import android.app.Activity;
import android.content.ContentProviderOperation;
import android.content.ContentResolver;
import android.content.ContentUris;
import android.content.Context;
import android.content.OperationApplicationException;
import android.database.Cursor;
import android.net.Uri;
import android.os.RemoteException;
import android.provider.ContactsContract;
import android.provider.ContactsContract.CommonDataKinds.Phone;
import android.provider.ContactsContract.Contacts;
import android.provider.ContactsContract.Data;
import android.provider.ContactsContract.RawContacts;
public class ContactsManager {
public static void deleteContact(Context context, String contactId) {
ContentResolver contentResolver = context.getContentResolver();
Uri uri = ContentUris.withAppendedId(Contacts.CONTENT_URI, Long.parseLong(contactId));
contentResolver.delete(uri, null, null);
}
}
在这个示例中,我们使用了Contacts Provider API来删除指定联系人。首先,我们获取ContentResolver对象,然后使用ContentUris.withAppendedId方法构建联系人的URI。最后,我们使用ContentResolver.delete方法删除联系人。
需要注意的是,在Android 6.0(API 23)及更高版本中,我们需要在运行时请求WRITE_CONTACTS权限。可以使用以下代码来检查权限:
private static final int REQUEST_WRITE_CONTACTS_PERMISSION = 1;
private void requestWriteContactsPermission() {
if (ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_CONTACTS)
!= PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this,
new String[]{Manifest.permission.WRITE_CONTACTS},
REQUEST_WRITE_CONTACTS_PERMISSION);
}
}
在这个示例中,我们使用ContextCompat.checkSelfPermission方法检查WRITE_CONTACTS权限是否已经被授权。如果没有授权,我们使用ActivityCompat.requestPermissions方法请求权限。
总之,在Android中以编程方式删除联系人,可以使用Contacts Provider API。需要注意的是,在Android 6.0及更高版本中,我们需要在运行时请求WRITE_CONTACTS权限。
领取专属 10元无门槛券
手把手带您无忧上云