Android开发秘籍:使用ContactsContract类轻松读取联系人信息
在Android开发中,可以使用ContactsContract类来读取联系人信息。以下是一个简单的示例: ```java import android.Manifest; import android.content.ContentResolver; import android.content.Context; import android.database.Cursor; import android.os.Build; import android.provider.ContactsContract; import java.util.ArrayList; import java.util.List; public class ContactUtils { private static final int REQUEST_CONTACTS = 1; public static List<String> getAllContacts(Context context) { List<String> contacts = new ArrayList<>(); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { requestPermissions(context, new String[]{Manifest.permission.READ_CONTACTS}, REQUEST_CONTACTS); } ContentResolver resolver = context.getContentResolver(); Cursor cursor = resolver.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, null, null, null); if (cursor != 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)); contacts.add(number + "\t" + name); } cursor.close(); } return contacts; } public static void requestPermissions(Context context, String[] permissions, int requestCode) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { if (context.checkSelfPermission(permissions[0]) != PackageManager.PERMISSION_GRANTED) { context.requestPermissions(permissions, requestCode); } } } } ``` 在这个示例中,我们首先检查设备是否运行Android 6.0或更高版本,如果是,我们请求读取联系人的权限。然后,我们使用ContentResolver查询ContactsContract.CommonDataKinds.Phone.CONTENT_URI,这个URI表示联系人的电话号码。查询结果是一个Cursor对象,我们可以遍历这个Cursor来获取联系人的信息。我们将联系人的信息添加到一个列表中并返回。 注意,这个示例只获取了联系人的电话号码和名字,如果需要获取更多的信息,可以修改查询的URI和字段。 ######[AI写代码神器 | 437点数解答 | 2023-11-07 22:41:39]
- RealtimeMonitoringFragment 代码片段:Android 实时监控功能核心代码剖析(字节豆包 | 30点数解答 | 2024-10-12 10:31:18)294
- 揭秘:Android实时监控片段(RealTimeMonitoringFragment)代码实现(GPT | 531点数解答 | 2024-10-12 10:32:25)269
- AIDE编写Xposed软件:参考代码教你拦截Smail类方法名(阿里通义 | 649点数解答 | 2024-10-12 00:15:48)305
- Java:抽象类 Vehicle 及子类 Car、MotorBike 实战演示(讯飞星火 | 440点数解答 | 2024-06-06 23:18:54)312
- 用 Pandas 深度剖析数据:从读取到统计分析全流程实战(GPT | 642点数解答 | 2024-06-30 15:39:49)357
- 用 Pandas 深入分析招聘数据:从数据读取到可视化全流程解析(GPT | 1539点数解答 | 2024-06-30 15:56:50)371
- JSP 实现商品展示模块:分页、搜索、交互与美观界面全搞定!(字节豆包 | 19点数解答 | 2024-12-13 15:00:43)336
- Android开发必备:ContactsContract API全解析及使用注意事项(阿里通义 | 421点数解答 | 2023-11-07 22:45:37)165
- 智能电话窗口按钮1弹起:获取坐标与手机IMEI码待处理(GPT | 208点数解答 | 2024-09-12 16:36:31)353
- PyCharm 中用 Selenium 编写自动化测试脚本,轻松登录 eShop 测试平台并点击“我的订单”(字节豆包 | 304点数解答 | 2024-11-06 15:38:30)432
- Android Studio开发:打造多页面交互美团选购App,附代码示例与注意要点! (字节豆包 | 293点数解答 | 2024-11-29 01:16:56)302
- Android Studio 开发:功能完备且流畅运行的美团选购 APP 大揭秘!(GPT | 291点数解答 | 2024-11-29 01:17:30)228