问题标签 [android-contentprovider]

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 投票
3 回答
424 浏览

android - 是否有帮助创建内容提供者的 Android 工具?

我看到 ORM 工具有很多选择: Android 开发有什么好的 ORM 工具吗?

但是它们中的任何一个都可以帮助您快速创建内容提供者吗?

如果没有,存在哪些工具?

0 投票
1 回答
5584 浏览

android - 使用 ContentResolver.applyBatch() 的主详细信息?

我想知道是否可以在同一操作中使用 android.content.ContentResolver.applyBatch() 方法将主记录和详细记录保存到内容提供者,其中 providers 参数中的后续 ContentProviderOperation 项目取决于先前项目的结果。

我遇到的问题是,在调用 ContentProviderOperation.newInsert(Uri) 方法并且 Uri 是不可变的时,实际的 Uri 是未知的。

我想出的如下所示:

主 Uri:content://com.foobar.masterdetail/master
详细 Uri:content://com.foobar.masterdetail/master/#/detail

在我的内容提供程序中,我重写了 applyBatch() 方法,以便将操作包装在事务中。

这是可能的还是有更好的方法来做到这一点?

谢谢。

0 投票
3 回答
1012 浏览

android - 同一应用程序中的 Android 内容提供程序

我有多个活动(在同一个应用程序内)需要访问数据库。实现这一点的最佳模式是什么?即使所有活动都属于同一个应用程序,我是否还需要内容提供者?

哪个活动应该负责打开和关闭数据库?

0 投票
1 回答
1506 浏览

android - 使用 PreferenceActivity 并在 ContentProvider 中保存首选项,如何?

Jeff Sharkey 在这篇文章中展示了如何通过对 PreferenceActivity 的 hack 在数据库中创建保存应用程序首选项。

它说我也可以使用 ContentProvider。

你能给我一个关于如何将首选项从 PreferenceActivity 保存到 ContentProvider 的例子吗?

谢谢

0 投票
4 回答
85845 浏览

android - 当 - java.io.FileNotFoundException:没有内容提供者时该怎么办?

当我尝试将文件附加到电子邮件时,我收到 java.io.FileNotFoundException: No content provider logcat output。如果有人能告诉我我做错了什么或者我应该做什么,那就太好了。谢谢。

这就是我将文件添加到电子邮件的方式..:

...这是整个 logcat 错误输出:

0 投票
5 回答
20639 浏览

android - 多个应用程序使用相同的内容提供商

我正在开发一组仅在某些品牌中脱颖而出的应用程序(想想不同的运动队);但是,我遇到了一个问题,我为所有特定品牌的应用程序使用一个库项目,并希望对所有这些应用程序使用相同的 ContentProvider。当我创建 ContentProvider 时,我将 AUTHORITY 声明为类中的常量(根据开发示例代码),并且我在清单文件中的每个特定应用程序中使用相同的权限。看起来我无法在每个应用程序中使用相同的权限,因为在尝试安装第二个应用程序时出现此错误(我安装了一个品牌的应用程序很好,但第二个安装):

我尝试了几种方法,但似乎都没有。我还没有完成的一个想法是创建一个库 jar 并忽略我拥有的 Provider 类并在每个特定的应用程序中对其进行自定义。关于如何在不诉诸于此的情况下解决此问题的任何想法?

0 投票
1 回答
3859 浏览

android - 如何查询内容提供商最近发送的短信?

当我在我的 Android 模拟器上发送短信时,它会发送给内容提供商:

正确的?

所以我想从内容提供商那里获得最后发送的短信。因此,如您在上面看到的,我使用了这个 Uri,并使用了方法查询和内容解析器对象。我得到了光标,并使用了 movetofirst() 方法,所以我会收到最后发送的短信。检查下面的代码。

0 投票
2 回答
6189 浏览

android - Android:在 ContentProvider 中调用自定义方法

我有一个自定义的 ContentProvider,用于将从 GPS 获得的修复程序存储到 SQLite 数据库中。此类覆盖 ContentProvider 方法(删除、插入、查询...),但请注意,我还包含一个查询最后修复的方法。

通过调用从其他服务或活动中查询数据非常容易getContentResolver()

但我无法调用我的自定义方法 ( FixesContentProvider#getLastFix)。 如何调用 ContentProvider 中定义的自定义方法?

也许我不明白 ContentProviders/ContentResolvers 在这种情况下是如何工作的,但是Google 提供的官方 Android 文档在这个意义上并不是很清楚。

0 投票
1 回答
663 浏览

android - 在自定义 ContentProvider 的 fillWindow() 方法中做什么?

我正在编写一个自定义 ContentProvider,它提供由单个常量字符串组成的内容,我将其表示为具有列 _id = 0 和 value =“SomeString”的单行表。这个字符串没有存储在数据库中,所以我开发了一个 CrossProcessCursor 的子类,它完成了我上面描述的行为所需的一切。

CrossProcessCursor 的文档非常稀少,并没有真正解释 fillWindow() 方法应该做什么,而不是显而易见的。根据 CursorWindow 方法的描述,我将以下内容放在一起,我认为应该涵盖它:

正如预期的那样,当客户端应用程序请求内容时,它会以 pos = 0 调用,但客户端应用程序在尝试访问第一(也是唯一)行时会引发异常:

任何人都可以阐明这个方法应该做什么来向客户端返回一个看起来正确的行吗?

谢谢。

0 投票
9 回答
37784 浏览

android - “内容提供者”和“SQLite 数据库”之间的确切区别

我已经为 Android 完成了 SQLite 数据库编程,但除了以下内容我对 Content-Provider 一无所知:“正如我提到的Android 开发者页面,Android SDK 解释了“内容提供者”,因为它用于存储和检索数据。”

但是之后,

  1. “内容提供者”和“SQLite 数据库”之间的确切区别是什么?
  2. 什么时候最好存储数据?

任何例子或帮助!