问题标签 [android-contentresolver]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
3199 浏览

android - 如何实现只读的ContentProvider?

我想知道如何最好地实现一个只读的 ContentProvider。我希望我的数据源只能通过我的 ContentProvider 的其他特殊方法在我自己的应用程序中进行修改(当然不能通过 ContentResolver 访问这些方法)。换句话说,其他应用程序应该只能使用我的 ContentProvider 的查询方法,而不能插入、删除或更新。

显而易见的解决方案似乎是只返回 null/0/0 而在插入/删除/更新中什么也不做。总是在这些方法中抛出一个异常,以便清楚地传达这些操作是不允许的,会更好吗?或者是否有可能仅通过权限将对 ContentProvider 的访问限制为查询方法?

0 投票
0 回答
649 浏览

android - 如何在 ContentProvider 中批量更新数据,这让我很困惑

如何在内容提供程序中执行此 sql,如下所示:

谁能帮我修复代码

谢谢。

0 投票
1 回答
3313 浏览

android - 如何使用 ContentProvider 更新数据?

如何使用 Content Provider 执行此 sql,如下所示:

我的java代码是这样的

谁能帮我修复代码?谢谢。

0 投票
1 回答
2105 浏览

android - Android:如何在后台使用 ContentResolver

我有扩展BroadcastReceiver并获取所有新短信的课程。

当我收到新短信时,我想搜索电话簿以检查此消息中的电话号码是否在电话簿中,如果是,则将带有结果的短信发送到另一部手机。

ContentResolver用来检查电话号码,但要使用它,我需要在 Activity 中使用它或有指向 Activity 的指针,但我的短信监听器在后台工作。

有没有办法在没有活动的情况下搜索电话簿或从接收新短信时获得的上下文或意图中获取有效活动?

我尝试使用类似的东西:

但它不起作用:P 在 DBManager 中我搜索电话,在 SmsSender 中我发送新的短信。

0 投票
2 回答
928 浏览

android - 将单词插入 UserDictionary 的最快方法

我希望应用程序向 UserDictionary 添加几个 (2k) 单词。

我已经尝试过 ContentResolver().insert/bulk insert....

如果我批量插入 100 个单词,在我的手机上每个单词大约需要 100 毫秒。插入 2k 个单词需要 3 多分钟。

有人知道插入单词的更快方法或可以进行的任何优化吗?

附带问题:UserDictionary 大小有上限还是取决于手机?

任何帮助表示赞赏

迈克尔斯特

0 投票
3 回答
2822 浏览

android - 无法解析内容提供程序://com.android.alarmclock/alarm

我正在为我制作这个应用程序,带有 api 9 和股票闹钟。

我发现了这个:http ://code.google.com/p/android-alarm-database/

在创建我的主要活动时是这样的:

当我使用 URI content://com.android.alarmclock/alarm 它在 logcat 中给了我:

比我尝试的内容://com.android.deskclock/alarm:

0 投票
1 回答
544 浏览

android - 我无法更新联系人的备注部分

我正在尝试更改联系人的备注部分,我得到了他们的电话号码(receivedLocationSender),并且日志输出提供了正确的姓名和 ID,但我不知道如何让它替换联系人的“备注”部分。我目前所拥有的绝对没有任何作用。

0 投票
1 回答
1795 浏览

android - getContentResolver().query 问题

这两个都泄漏了我的活动,当它超过 1mb 堆内存时。我需要删除超过 1mb 的联系人,即;超过 2500 个联系人。

有什么替代方案或解决方法?然后我做

如何一次只删除 100-200 个联系人?或任何其他方式?

日志:

0 投票
4 回答
11087 浏览

android - Android - 按显示名称查找联系人

我正在尝试按显示名称查找联系人。目标是打开此联系人并向其添加更多数据(特别是更多电话号码),但我什至很难找到我想要更新的联系人。

这是我正在使用的代码:

我确实有一个名为“John Johnson”的联系人,但该方法总是返回“未找到”。我还尝试搜索只有一个名字的联系人,所以这没有区别。

我怀疑 uri、selection 或 selection 参数有问题,因为我在网上找不到任何搜索具有给定显示名称的联系人的示例,而且显示名称似乎是一种特殊的信息,不同于例如一个电话号码。

有什么想法可以找到约翰约翰逊吗?


更新:我发现了如何通过显示名称查找联系人:

此代码返回显示名称为“John Johnson”的第一个联系人的联系人 ID。在我的原始代码中,我的查询中有错误的 uri 和错误的选择。

0 投票
3 回答
5997 浏览

android - Android:使用 ContentResolver,CONTACT_ID 是列还是行?

我的问题似乎很愚蠢,但下面的代码让我很头疼。下面的代码打印contactIdtelephone number显示。

它运作良好,但我需要更清楚地知道一些事情:

我不知道的是上面这行代码:

关于Android Development第三个参数:

selection :声明要返回哪些行的过滤器,格式化为 SQL WHERE 子句(不包括 WHERE 本身)。传递 null 将返回给定 URI 的所有行。

因此,作为这个定义,CONTACT_ID充当“A ROW”。(因为它filter which row to return),

但作为这一行,CONTACT_ID充当“A COLUMN”:

请为我解释这一点。

谢谢 :)