首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Android只使用列有电子邮件> android 2.0的联系人获取游标

答案

在 Android 中,如果只需要使用列有电子邮件地址的 Android 2.0 联系人获取游标,可以遵循以下步骤:

  1. 获取访问权限:在开始操作之前,请确保您已获得所需权限,例如读取联系人的权限。
  2. 查询联系人:您可以使用 ContentResolver 来查询联系人。在这里,您可以指定要查询的联系人姓名和电子邮件地址。
  3. 解析游标:查询完成后,您可以使用 CursorLoader 来解析游标。CursorLoader 会自动处理并返回所需的电子邮件地址。
  4. 处理游标:一旦获得游标,您可以遍历每个条目并提取所需的电子邮件地址。
  5. 完成:处理完游标后,您可以使用获得的电子邮件地址执行所需的操作。

以下是一个简单的代码示例,演示如何使用 Android 2.0 联系人的电子邮件地址:

代码语言:kotlin
复制
val contentResolver = getContentResolver()
val cursor = contentResolver.query(
    ContactsContract.Contacts.CONTENT_URI,
    arrayOf(
        ContactsContract.Contacts.DISPLAY_NAME,
        ContactsContract.Contacts.HAS_PHONE_NUMBER
    ),
    ContactsContract.Contacts.DISPLAY_NAME + "=?",
    arrayOf("Miller"),
    null
)

if (cursor != null) {
    while (cursor.moveToNext()) {
        val name = cursor.getString(0)
        val hasEmail = cursor.getInt(1) > 0

        if (hasEmail) {
            val emailCursor = contentResolver.query(
                ContactsContract.CommonDataKinds.Email.CONTENT_URI,
                arrayOf(
                    ContactsContract.CommonDataKinds.Email.ADDRESS
                ),
                ContactsContract.CommonDataKinds.Email.CONTACT_ID + "=?",
                arrayOf(name.toString()),
                null
            )

            if (emailCursor != null) {
                while (emailCursor.moveToNext()) {
                    val email = emailCursor.getString(0)
                    // Do something with the email address
                }
                emailCursor.close()
            }
        }
    }
    cursor.close()
}

请注意,此代码示例适用于 Android 2.0 及更高版本。在代码示例中,我们使用 ContentResolver 和 CursorLoader 来查询和解析游标。我们还使用 while 循环来遍历每个联系人及其电子邮件地址。如果您需要执行其他操作,可以修改代码以满足您的需求。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 2-AIV--使用ContentProvider查询联系人

    [4].不太熟悉安卓运行时权限童鞋可以看一下我封装权限申请类: TI--安卓运行时权限完美封装 [5].如果只是想使用的人,直接把静态方法拷贝即可,想知道原理,图片和注释认真看一下,也可以自己分析一下联系人表...[6].本文打印一下查询结果:ListView篇将会界面展示数据,Xml篇将会介绍备份到本地 一、代码实现 1.实现分析: raw_contacts表中查到contact_id, 每个contact_id...联系人数据库 ? 联系人.png 我们关注时三张表: 1.raw_contacts 关注一个字段contact_id ?.../** * 获取联系人:ContactBean字段:name姓名 address地址 email邮箱 phone手机号 * * @param ctx 上下文..., new String[]{"contact_id"}, null, null, null); //[4]遍历游标获取数据,储存在bean中 while (raw_contactsCursor.moveToNext

    53810

    Android】Retrofit 2.0 使用一、概述二、原理二、使用

    一、概述 Retrofit是Square公司开发一个类型安全Java和Android REST客户端库。...关于REST介绍可以参考维基百科 retrofit模型如下:(来自如何使用Retrofit写一个AndroidREST客户端小教程) retrofit模型...POJO或模型实体类 : 从服务器获取JSON数据将被填充到这种类实例中。...JSON格式,在此我使用是Gson对返回数据解析 添加权限 由于是网络请求,需要在manifest中添加网络请求权限 <uses-permission android:name="android.permission.INTERNET...服务器返回JSON数据不能在Java里直接使用,所以我们需要用模型类来做转换。这里使用jsonschema2pojo(需访问外国网站)来创建POJO。

    2.2K50

    Android小程序实现访问联系人

    本文实例为大家分享了Android实现访问联系人具体代码,供大家参考,具体内容如下 要求: 编写程序,使用ContentProvider实现访问联系人 ContentProvider类作用: ContentProvider...基本操作: 查询:使用ContentResolverquery()方法查询数据与 SQLite查询一样,返回一个指向结果集游标Cursor。...更新:使用ContentResolver.update()方法实现记录更新操作。...(20.0f); //设置文本框文本 textview.setText("记录\t 名字\n"+result); } //getContactInfo()获取联系人列表信息,返回String...:name="android.permission.READ_CONTACTS" / (4)实现效果: 在联系人中添加几个联系人: 运行程序,手机里所有联系人ID及名字就会记录下来: ?

    80920

    Android数据存储实现5大方式

    Android数据存储实现5大方式 数据存储在开发中是使用最频繁,在这里主要介绍Android平台中实现数据存储5种方式,更加系统详细介绍了5种存储方法和异同。...因此,Android 提供了一些新 API 来使用 SQLite 数据库,Android 开发中,程序员需要学使用这些 API。...这个方法需要四个参数:上下文环境(例如,一个 Activity),数据库名字,一个可选游标工厂(通常是 Null),一个代表你正在使用数据库模型版本整数。...,parms, null, null, null); 使用游标 不管你如何执行查询,都会返回一个 Cursor,这是 Android SQLite 数据库游标使用游标,你可以: 通过使用 getCount...,我们可以通过迭代这个游标获取所有的数据: package com.wissen.testApp; public class ContentProviderDemo extends Activity

    6.7K90

    Android使用CrashHandler来获取应用crash信息方法

    在日常开发过程中应该不可避免会发生 crash,无论你程序写多么完美,都不可能完全避免 crash 发生,可能是由于 Android 底层 bug,也可能是由于不充分机型适配或者是糟糕网络状况...crash,即便我们想去解决这个 bug,但是由于无法知道用户当时 crash 信息,所以往往也无能为力,幸运是,Andorid 提供了处理这类问题方法,接下来我们就来一起看看到底 Android...方法中就可以获取到异常信息,可以选择把异常信息存储下来,存储方式大家可以自己选择,然后在合适时候通过网络将 crash 信息上传到服务器上,这样我们开发人员就可以分析用户 crash 场景从而在后面的版本中进行修复...(this); //获取Context,方便内部使用 mContext = context.getApplicationContext(); } /** * 这个是最关键函数,当程序中有未被捕获异常...,比较适合有一定 Android 基础同学,马上就是国庆小长假了,祝大家国庆节愉快 以上就是本文全部内容,希望对大家学习有所帮助。

    1.1K41

    业界 | 谷歌版“剑桥分析事件”上演,华尔街日报发文谴责,谷歌长文回应

    发现 4 :当用户授予 Android 应用 短信、联系人和通话权限时候,他们这样做是具有特定使用场景。...措施 4:我们会对应用程序获取 Android 设备上通话记录和短信记录权限做一些限制,并且不再允许通过 Android Contacts API 获取到通话交互数据。...一些 Android Apps 启动时会请求获取用户通讯录(包括通话记录)和短信(SMS)数据权限。...针对这种情况,未来 Google Play 将会对 Android 应用获取这些权限增加一些限制。...此外,作为 Android 联系人Android Contacts)权限机制一部分,我们此前提供了基本交互访问数据功能 —— 比如,一个短信应用可以获取并显示最近联系人记录。

    1.1K50

    跨程序共享数据——Content Provider 之 ContentResolver基本用法 & 一个读取系统联系人Demo

    Android系统中自带电话簿、短信、媒体库等程序都提供了类似的访问接口,这就使得第三方应用程序可以充分地利用这部分数据来实现更好功能。 下面我们就来看一看,内容提供器到底是如何使用。...() 方法获取到该类实例。...注意这里moveToNext:第一次调用moveToNext时候,默认就是移动到了第一行游标位置,和调用moveToFirst效果是一样,但是第二次调用moveToNext时候,游标就会向下移动了...= null){ while(cursor.moveToNext()){ //获取联系人姓名...(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME)); //获取联系人手机号

    1.3K20

    Android Root设备中su权限获取使用详解

    有了最高权限,你就可以为所欲为,换句话说,如果恶意程序获取到了ROOT权限,那么就可以肆意地破坏你手机,获取隐私…所以厂商一般在生产手机时候,不会提供给用户ROOT权限,官方宣称是为了保护用户手机安全...,然后装了一堆开机自动启动,而用户这辈子也用不到也卸载不了垃圾软件(相信使用安卓同学们都懂我意思),而苹果所说越狱,也就是获取ROOT权限。...苹果用户获取ROOT权限,是为了可以免费安装各种软件,以及为了获取更加灵活操作体验,苹果不会安装一堆恶心软件;而安卓普通用户获取ROOT权限,最大目的就是为了卸载这些恶心自带软件,安卓极客用户则是为了各种折腾安卓手机...我们开机之后,使用手机身份就是一个普通用户(user),如果执行su,那么就可以直接切换到ROOT身份。...高通平台上,su相关代码位于: LINUX/android/system/extras/su/su.c中 Android开发中,偶有会遇到对一些定制设备开发,一般这种设备都会有root权限,开发中也会用到

    4.4K10

    Android 系统剪贴板使用 - 复制、获取和清空

    ClipboardManager: 表示一个剪贴板 ClipData: 剪贴板中保存所有剪贴数据集(剪贴板可同时复制/保存多条多种数据条目) ClipData.Item: 剪贴数据集中一个数据条目...复制内容 /** * 实现文本复制功能 * * @param content 复制文本 */ public static void copy(String content) { if...ClipData.newPlainText(null, content); // 把数据集设置(复制)到剪贴板 cmb.setPrimaryClip(clipData); } } 获取系统剪贴板内容.../** * 获取系统剪贴板内容 */ public static String getClipContent() { ClipboardManager manager = (ClipboardManager...// 获取系统剪贴板 ClipboardManager clipboard = (ClipboardManager) context.getSystemService(Context.CLIPBOARD_SERVICE

    1.7K30

    Android 系统剪贴板使用 - 复制、获取和清空

    ClipboardManager: 表示一个剪贴板 ClipData: 剪贴板中保存所有剪贴数据集(剪贴板可同时复制/保存多条多种数据条目) ClipData.Item: 剪贴数据集中一个数据条目...复制内容 /** * 实现文本复制功能 * * @param content 复制文本 */ public static void copy(String content) { if...ClipData.newPlainText(null, content); // 把数据集设置(复制)到剪贴板 cmb.setPrimaryClip(clipData); } } 获取系统剪贴板内容.../** * 获取系统剪贴板内容 */ public static String getClipContent() { ClipboardManager manager = (ClipboardManager...// 获取系统剪贴板 ClipboardManager clipboard = (ClipboardManager) context.getSystemService(Context.CLIPBOARD_SERVICE

    6K20

    保存联系人到系统通讯录

    对应着读联系人,把数据写进去,市场上社交类应用经常会有这样功能 向raw_contacts表中添加一个id 向data表里面添加对应数据 获取ContentResolver对象,通过getContentResolver...()方法 调用ContentResolver对象query()方法,查询raw_contacts表,得到Cursor对象 调用Cursor对象moveToLast()方法,游标移动到最后一行 获取到最后一行记录...获取到ContentResolver对象后调用insert(uri,values)方法,参数:Uri应该是data表Uri规则,ContentValues对象,put(key,value),”raw_contact_id...cursor.moveToLast(); int lastId=cursor.getInt(0); int newId=lastId+1; //插入一个联系人..."police1"); resolver.insert(dataUri, data1Values); Toast.makeText(this, "写联系人成功

    81630

    《移动互联网技术》 第七章 数据存取: 掌握File、SharePreferences、SQLite和ContentProvider四种数据存取方式

    最后,在游标使用完以后要调用close函数关闭它。 4) 内容共享组件 内容提供器(ContentProvider)是Android应用四大组件之一。...在循环中使用游标对象把数据提取出来,直到循环结束。 if (cursor !...首先构造一个ContactsActivity,这个活动要访问联系人APP内容提供器。注意访问共享数据还要声明使用权限,如果使用Android 6.0以上版本,记得要申请动态使用权限。...构造一个联系人类ContactsUtil来读取所有联系人信息。首先获取内容解析器,然后查询联系人。...接下来,使用游标对象遍历联系人信息,把联系人姓名和手机号逐一提取出来。联系人姓名对应DISPLAY_NAME常量,电话号码对应NUMBER常量,其他参数可以查阅Andriod相关资料。

    7710

    Android系统联系人全特效实现(上),分组导航和挤压动画

    记得在我刚接触Android时候对系统联系人特效很感兴趣,它会根据手机中联系人姓氏首字母进行分组,并在界面的最顶端始终显示一个当前分组。...由于SectionIndexer是一个接口,你可以自定义一个子类来实现SectionIndexer,不过自己再写一个SectionIndexer实现太麻烦了,这里我们直接使用Android提供好实现...其中cursor就是把我们从数据库中查出游标传进去,sortedColumnIndex就是指明我们是使用哪一列进行排序,而alphabet则是指定字母表排序规则,比如:"ABCDEFGHIJKLMNOPQRSTUVWXYZ...return sortKey; } public void setSortKey(String sortKey) { this.sortKey = sortKey; } } 这个实体类很简单,包含了联系人姓名和排序键...之后再通过ListViewgetChildAt(0)方法,获取到界面上显示第一个子View,再用view.getBottom获取底部距离父窗口位置,对比分组布局高度来对顶部分组布局进行纵向偏移,

    1.2K50
    领券