如何唯一标识 ContactsContract.Contacts 表上的联系人

2023-12-13

我有一个应用程序可以获取ContactsContract.Contacts.LOOKUP_KEY设备上的联系人并将其保存在应用程序数据库中。

看完之后this页面我想我可以使用LOOKUP_KEY唯一标识联系人,即使在编辑联系人时(例如编辑联系人姓名后)。

其实我看到编辑联系人后,LOOKUP_KEY更改,所以我不能再使用LOOKUP_KEY我保存在我的应用程序数据库中。

我的问题是:有没有办法唯一地识别联系人ContactsContract.Contacts从第一次在设备上创建到从设备中删除?

谢谢


A LOOKUP_KEY并不意味着单独用作密钥,而是应与联系人的密钥一起使用_ID形成一个完整的lookupUri.

The lookupUri然后可用于查找联系人CONTENT_LOOKUP_URI表。 这CONTENT_LOOKUP_URI基本上首先通过以下方式寻找联系人_ID,如果找不到它,或者_ID似乎是错误的联系方式,它使用hints来自LOOKUP_KEY部分尝试为您找到正确的联系人。

From CONTENT_LOOKUP_URI

该表的 content:// 样式 URI 应用于创建 快捷方式或以其他方式创建与联系人的长期链接。这个URI 后面应始终跟有“/”和联系人的 LOOKUP_KEY。它 还可以选择附加“/”和最后已知的联系 ID 在那之后。这种“完整”格式是一项重要的优化, 强烈推荐。

只要联系人的行 ID 保持不变,此 URI 就是 相当于 CONTENT_URI。如果联系人的行 ID 因此发生更改 同步或聚合时,此 URI 将使用以下方式查找联系人 间接信息(同步 ID 或组成的原始联系人)。

查找密钥应以未编码形式附加 - 它存储在编码中 形式,准备在 URI 中使用。

From getLookupUri(long contactId, String lookupKey)

使用给定的 _ID 构建 CONTENT_LOOKUP_URI 查找 Uri 和 LOOKUP_KEY。

From LOOKUP_KEY

包含的不透明值hints关于如何找到联系人(如果是) 行 ID 由于同步或聚合而更改。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何唯一标识 ContactsContract.Contacts 表上的联系人 的相关文章

  • 如何为ScrollView放置固定图像背景?

    我应该想要滚动视图滚动 而不是背景中的图像 将图像添加到滚动视图框架之前的视图层次结构的较高位置
  • 如何清除所有WebView存储的信息?

    我有一个 Android 浏览器 我可以选择清除缓存 存储 cookie 等 代码如下所示 webView clearCache true webView clearFormData webView clearHistory webView
  • StrictMode 策略违规:我的应用程序中存在 android.os.strictmode.LeakedClosableViolation?

    Android 开发新手 第一次在我的应用程序上尝试 StrictMode 我注意到以下内容 并想知道这是否是我的应用程序或库中的问题 我不太清楚 谢谢你 D StrictMode StrictMode policy violation a
  • Android 30+ 中的视频捕获意图 - 只有所有者才能与待处理项目交互

    我正在尝试在我的应用程序上捕获视频 它可以在 android API 30 以下运行 但不能在 30 以上运行 似乎在 sdk 30 之后 android 不允许完全读取外部存储 作用域存储 我目前遇到这个错误 java lang Ille
  • Android 后退按钮无法与 Flutter 选项卡内的导航器配合使用

    我需要在每个选项卡内有一个导航器 因此当我推送新的小部件时 选项卡栏会保留在屏幕上 代码运行得很好 但是 android 后退按钮正在关闭应用程序而不是运行 Navigator pop import package flutter mate
  • 谷歌坐标认证

    当我尝试连接到 Google 坐标时 总是出现异常GoogleAuthException 我拥有 Google 地图协调中心许可证 我确实使用我的包应用程序名称和 SHA1 在 google 控制台中创建了我的客户端 ID 我将权限添加到清
  • Android Activity 生命周期函数基础知识

    我正在测试这段代码 它显示活动所处的状态 public class Activity101Activity extends Activity String tag Lifecycle Called when the activity is
  • Adobe 是否为其 PDF 阅读器提供 Android SDK 或 API? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我希望能够在我们的应用程序内的视图中显示本地 PDF 文件 在 Android 4 03 下的平板电脑上运行 目前 我们将 Adob eR
  • 在画布上绘图

    我正在编写一个 Android 应用程序 它可以在视图的 onDraw 事件上直接绘制到画布上 我正在绘制一些涉及单独绘制每个像素的东西 为此我使用类似的东西 for int x 0 x lt xMax x for int y 0 y lt
  • 在 HTTPResponse Android 中跟踪重定向

    我需要遵循 HTTPost 给我的重定向 当我发出 HTTP post 并尝试读取响应时 我得到重定向页面 html 我怎样才能解决这个问题 代码 public void parseDoc final HttpParams params n
  • Android:捕获的图像未显示在图库中(媒体扫描仪意图不起作用)

    我遇到以下问题 我正在开发一个应用程序 用户可以在其中拍照 附加到帖子中 并将图片保存到外部存储中 我希望这张照片也显示在图片库中 并且我正在使用媒体扫描仪意图 但它似乎不起作用 我在编写代码时遵循官方的Android开发人员指南 所以我不
  • 是否有 ADB 命令来检查媒体是否正在播放

    我想使用 ADB 命令检查根植于终端的外部设备中是否正在播放音频 视频 我无法找到任何 ADB 命令 如果有 我尝试过 adb shell dumpsys media player 我想要一个命令来指定视频是否正在运行 您可以使用以下命令查
  • JavaMail 只获取新邮件

    我想知道是否有一种方法可以在javamail中只获取新消息 例如 在初始加载时 获取收件箱中的所有消息并存储它们 然后 每当应用程序再次加载时 仅获取新消息 而不是再次重新加载它们 javamail 可以做到这一点吗 它是如何工作的 一些背
  • 在 android DatePickerDialog 中将语言设置为法语

    有什么办法可以让日期显示在DatePickerDialog用法语 我已经搜索过这个但没有找到结果 这是我的代码 Calendar c Calendar getInstance picker new DatePickerDialog Paym
  • Android访问远程SQL数据库

    我可以直接从 Android 程序访问远程 SQL 数据库 在网络服务器上 吗 即简单地打开包含所有必需参数的连接 然后执行 SQL 查询 这是一个私人程序 不对公众开放 仅在指定的手机上可用 因此我不担心第三方获得数据库访问权限 如果是这
  • 我的设备突然没有显示在“Android 设备选择器”中

    我正在使用我的三星 Galaxy3 设备来测试过去两个月的应用程序 它运行良好 但从今天早上开始 当我将设备连接到系统时 它突然没有显示在 Android 设备选择器 窗口中 我检查过 USB 调试模式仅在我的设备中处于选中状态 谁能猜出问
  • Android:膨胀布局时出现 StackOverFlowError 和 InvokingTargetException

    首先 对不起我的英语 我在膨胀布局时有一个问题 我有一个自定义视图 从 LinearLayout 扩展而来 称为按钮帮助 我在名为的布局上使用该视图加载活动 我的以下代码在所有设备和模拟器上都能完美运行 但具有 QVGA 屏幕 例如 Sam
  • 如何在Xamarin中删除ViewTreeObserver?

    假设我需要获取并设置视图的高度 在 Android 中 众所周知 只有在绘制视图之后才能获取视图高度 如果您使用 Java 有很多答案 最著名的方法之一如下 取自这个答案 https stackoverflow com a 24035591
  • 捕获的图像分辨率太大

    我在做什么 我允许用户捕获图像 将其存储到 SD 卡中并上传到服务器 但捕获图像的分辨率为宽度 4608 像素和高度 2592 像素 现在我想要什么 如何在不影响质量的情况下获得小分辨率图像 例如我可以获取或设置捕获的图像分辨率为原始图像分
  • 如何将 google+ 登录集成到我的 Android 应用程序中?

    大家好 实际上我需要通过我的应用程序从 google 登录人们 现在我阅读了 google 上的文档 其中指出 要允许用户登录 请将 Google Sign In 集成到您的应用中 初始化 GoogleApiClient 对象时 请求 PL

随机推荐

  • Phoenix 夹具 json 文件

    如何在我的 phoenix 项目中加载 JSON 夹具文件 当我尝试像 Application app dir my app priv 这样的东西时 它给了我一个编译路径 我不能在我的测试中使用它 还有其他方法可以从 test suppor
  • 当我关闭 Pygame 时屏幕冻结

    该代码加载了一个 pygame 屏幕窗口 但是当我单击 X 关闭它时 它变得没有响应 我在 64 位系统上运行 使用 32 位 python 和 32 位 pygame from livewires import games color g
  • 不带 GROUP BY 子句的 MySQL 聚合函数

    在 MySQL 中 我观察到尽管没有 GROUP BY 子句 但在 SELECT 列表中使用 AGGREGATE FUNCTION 的语句仍会被执行 如果我们这样做 其他 RDBMS 产品 例如 SQL Server 会抛出错误 例如 SE
  • 关于 git pull 的合并/变基步骤的困惑

    来自 Loeliger 2ed 的 Version Control with Git 关于 git pull 中的合并或变基步骤 在拉取操作的第二步中 Git 执行 合并 默认 或变基操作 关于 git pull 中的合并步骤 在此示例中
  • 对出现错误的行使用带有重复标识符的扩展

    我的数据如下所示 df lt read table header T text GeneID Gene Name Species Paralogues Domains Functional Diversity 1234 DDR1 hsapi
  • 如何在android中动态启动和结束进度条

    当我从第一个活动类跳过第二个活动类时 我将开始对第二个活动中的某些图像进行图像处理 然后直到新图像出现在屏幕上时 我不想启动进度栏 然后在新图像出现在屏幕上时完成 我怎样才能做到这一点 使用 ProgreaaDialog 和 AsyncTa
  • 调用方法 Location.toString 的权限被拒绝

    我用的是YUI 有时我会看到 调用方法 Location toString 的权限被拒绝 错误 它在connection js中报告 我还没有找到任何线索为什么会出现这个错误 很奇怪 如果您通过跨域 iframe 处理任何 Flash 那么
  • 如何在 Pyspark 中注册不带参数的 UDF

    我已经尝试使用 lambda 函数带参数的 Spark UDF 并注册它 但是我怎样才能创建没有参数和注册器的 udf 我已经尝试过这个我的示例代码将期望显示当前时间 从日期时间导入日期时间 从 pyspark sql functions
  • 如何删除等号('=')之前的所有字符串文本Java

    我想解析一个字符串 以便构建一个 XML 文档 I have String value path Some Xpath Here 我是这样解析的 private void parseXpath String s path Some Xpat
  • JVM 如何确保 System.identityHashCode() 永远不会改变?

    通常默认实现Object hashCode 是内存中对象分配地址的某个函数 尽管这不是由JLS 鉴于虚拟机在内存中分流对象 为什么返回的值System identityHashCode 在对象的生命周期中永远不会改变 如果是 一次性 计算
  • 在 Rust 中处理 GTK+ 事件的替代方法

    目前 我管理 GTK 活动Rc and RefCell如下例所示 extern crate gtk use std cell RefCell use std rc Rc use gtk Button ButtonExt ContainerE
  • SAPUI5 为 TreeTable/空行创建 JSON

    我想从 JSON 请求创建 SAPUI TreeTable 目前我的输出如下所示 如您所见 每个节点都包含一个空行 gt 我不知道这是从哪里来的 我不想让这些空行行 我的表定义 Create an instance of the table
  • 有没有办法强制使用dll版本?

    有没有办法强制使用特定的 dll 版本 从应用程序配置 背景故事 我们正在使用 SQL Compact 3 5 由于业务原因 是的 我知道 暂时无法迁移到 SQL Compact 3 5 SP1 我们的构建目录中有 System Data
  • foreach 循环的角度链接承诺

    我有一组照片文件需要上传到 Azure 云存储 我使用 foreach 循环调用上传 如下所示 scope savetemplate function var imagePathsArray scope filesimage scope f
  • LinkedIn 共享显示大图像的要求

    我的问题是 为什么图像很小以及如何使其变大 我已经实现了linkedIn共享 为此 我添加了元标记 og title og image og description og url 一切正常 但我的形象很小 小图像示例 大图示例 我们已经向
  • 0.5 时向上或向下舍入

    我遇到了 Javascript 在达到 0 5 时对数字进行四舍五入的方式的问题 我正在编写征费计算器 并注意到结果有 0 1c 的差异 问题是他们的结果是21480 705我的应用程序翻译成21480 71 而关税说21480 70 这是
  • 确定-取消对话框:处理“Enter”键按下

    我正在建造一个Dialog在Winforms中 当您创建它时 它有两个 确定 和 取消 按钮 这就是我想要的 在此对话框中我还有一个TextBox and a Sub VB NET 中的编码 处理其KeyPress事件 我需要按下 Ente
  • 裸星号作为方法定义中的参数:def f(*) [重复]

    这个问题在这里已经有答案了 我知道这意味着什么 def f args end 但这是什么意思以及为什么要使用它 它也可以与命名参数一起出现吗 def f end def f 具有相同的效果def f args 只不过它没有命名通配参数数组
  • Flexdashboard 侧边栏选择器输入溢出与滚动条

    在我之前的问题中shinyWidgets pickerInput 宽度问题溢出侧边栏我能够解决侧边栏中的 pickerInput 框如果值太宽会在侧边栏中被截断的问题 但是通过使用overflow visible 为了解决这个问题 当输入框
  • 如何唯一标识 ContactsContract.Contacts 表上的联系人

    我有一个应用程序可以获取ContactsContract Contacts LOOKUP KEY设备上的联系人并将其保存在应用程序数据库中 看完之后this页面我想我可以使用LOOKUP KEY唯一标识联系人 即使在编辑联系人时 例如编辑联