在Android中,可以使用编程方式创建联系人到SIM卡。下面是一个示例代码,展示了如何通过编程方式创建联系人到SIM卡:
import android.content.ContentProviderOperation;
import android.content.ContentProviderResult;
import android.content.ContentResolver;
import android.content.OperationApplicationException;
import android.os.RemoteException;
import android.provider.ContactsContract;
public class SimContactManager {
public static void createContact(String name, String phoneNumber) {
ContentResolver resolver = getContentResolver();
ArrayList<ContentProviderOperation> operations = new ArrayList<>();
// 添加联系人到SIM卡
operations.add(ContentProviderOperation.newInsert(ContactsContract.RawContacts.CONTENT_URI)
.withValue(ContactsContract.RawContacts.ACCOUNT_TYPE, null)
.withValue(ContactsContract.RawContacts.ACCOUNT_NAME, null)
.build());
// 添加姓名
operations.add(ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI)
.withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, 0)
.withValue(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.StructuredName.CONTENT_ITEM_TYPE)
.withValue(ContactsContract.CommonDataKinds.StructuredName.DISPLAY_NAME, name)
.build());
// 添加电话号码
operations.add(ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI)
.withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, 0)
.withValue(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE)
.withValue(ContactsContract.CommonDataKinds.Phone.NUMBER, phoneNumber)
.withValue(ContactsContract.CommonDataKinds.Phone.TYPE, ContactsContract.CommonDataKinds.Phone.TYPE_MOBILE)
.build());
try {
// 执行批量操作
ContentProviderResult[] results = resolver.applyBatch(ContactsContract.AUTHORITY, operations);
} catch (RemoteException | OperationApplicationException e) {
e.printStackTrace();
}
}
}
这段代码使用了Android的联系人内容提供器(ContentProvider)来操作联系人数据。首先,我们创建一个ContentProviderOperation
列表,然后按照指定的顺序添加操作。在这个例子中,我们首先添加了一个新的联系人到SIM卡,然后添加了联系人的姓名和电话号码。
要使用这个示例代码,你需要将其放置在Android应用的合适位置,并确保你的应用具有适当的权限,如读取和写入联系人数据的权限。
领取专属 10元无门槛券
手把手带您无忧上云