在Android中,联系人信息可以通过使用ContactsContract类来进行存储和访问。下面是使用ContactsContract类进行联系人存储的基本示例代码:
- 添加联系人:
ContentValues values = new ContentValues();
values.put(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME, "John Doe");
values.put(ContactsContract.CommonDataKinds.Phone.NUMBER, "1234567890");
Uri uri = getContentResolver().insert(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, values);
- 更新联系人:
ContentValues values = new ContentValues();
values.put(ContactsContract.CommonDataKinds.Phone.NUMBER, "9876543210");
String selection = ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME + " = ?";
String[] selectionArgs = {"John Doe"};
int count = getContentResolver().update(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, values, selection, selectionArgs);
- 删除联系人:
String selection = ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME + " = ?";
String[] selectionArgs = {"John Doe"};
int count = getContentResolver().delete(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, selection, selectionArgs);
- 查询联系人:
String[] projection = {ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME, ContactsContract.CommonDataKinds.Phone.NUMBER};
Cursor cursor = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, projection, null, null, null);
while (cursor.moveToNext()) {
String name = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME));
String number = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
// Do something with the contact information
}
cursor.close();
请注意,上述代码中的操作需要在运行时申请适当的权限,例如android.permission.READ_CONTACTS
和android.permission.WRITE_CONTACTS
。
宜春阿里云代理商是一个提供阿里云相关产品的代理商,与联系人存储无直接关系。这些示例代码适用于在任何Android应用中使用,并不依赖于特定的云服务提供商。
Android的联系人存储主要使用的是Android系统的Content Provider机制。通过Content Provider,可以向其他应用程序提供访问联系人数据的接口。
在宜春阿里云代理商中,可以通过以下步骤实现Android联系人存储功能:
-
添加权限:在AndroidManifest.xml文件中添加以下权限声明,以获取读写联系人数据的权限:
<uses-permission android:name="android.permission.READ_CONTACTS" /> <uses-permission android:name="android.permission.WRITE_CONTACTS" />
- 使用ContentResolver访问联系人数据:通过
ContentResolver
类可以查询、插入、更新和删除联系人数据。以下是一些常用的操作示例: -
查询联系人:使用
ContentResolver
的query()
方法查询联系人数据。例如,可以使用以下代码查询所有联系人的姓名和手机号码:Cursor cursor = getContentResolver().query( ContactsContract.CommonDataKinds.Phone.CONTENT_URI, new String[] { ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME, ContactsContract.CommonDataKinds.Phone.NUMBER }, null, null, null ); while (cursor.moveToNext()) { String name = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME)); String number = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)); // 处理联系人数据 } cursor.close();
-
插入联系人:使用
ContentResolver
的insert()
方法插入联系人数据。例如,可以使用以下代码插入一个新的联系人:ContentValues values = new ContentValues(); values.put(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME, "John Doe"); values.put(ContactsContract.CommonDataKinds.Phone.NUMBER, "123456789"); Uri contactUri = getContentResolver().insert(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, values); // 处理新联系人的Uri
-
更新联系人:使用
ContentResolver
的update()
方法更新联系人数据。例如,可以使用以下代码更新指定联系人的电话号码:ContentValues values = new ContentValues(); values.put(ContactsContract.CommonDataKinds.Phone.NUMBER, "987654321"); String selection = ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME + " = ?"; String[] selectionArgs = { "John Doe" }; int updatedRows = getContentResolver().update( ContactsContract.CommonDataKinds.Phone.CONTENT_URI, values, selection, selectionArgs ); // 处理更新结果
-
删除联系人:使用
ContentResolver
的delete()
方法删除联系人数据。例如,可以使用以下代码删除指定联系人:String selection = ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME + " = ?"; String[] selectionArgs = { "John Doe" }; int deletedRows = getContentResolver().delete( ContactsContract.CommonDataKinds.Phone.CONTENT_URI, selection, selectionArgs ); // 处理删除结果
以上是在宜春阿里云代理商中使用Android的联系人存储功能的一些基本操作步骤,具体可根据需求进行适当调整和扩展。
发布者:luotuoemo,转转请注明出处:https://www.jintuiyun.com/140992.html