Articles of android contentresolver

ContentResolver notifyChange方法是否也通知Uri的细节?

在应用数据期间,我使用了Uri notifyChange 。 比方说我通知content://com.package.my/items 。 我也有详细的Activity ,显示来自content://com.package.my/items/1数据。 Uri被通知的情况下,是否会通知'一般' Uri结果?

通过使用Realm库获取光标

我正在使用游标适配器为我的列表视图。 我打算使用内容parsing器来获取游标。 现在我改变了主意,给了它一个学习领域的机会。 我怎样才能通过使用领域获得“光标”对象? 顺便说一句,我也将不胜感激给一些片段来sorting游标。 谢谢。 final class Contact extends RealmObject { private CharSequence mName; public CharSequence getName() { return mName; } public void setName(CharSequence name) { this.mName = name; } } final class ContactListAdapter extends CursorRecyclerViewAdapter<ContactListAdapter.ContactHolder> implements View.OnClickListener { private OnContactClickListener mListener; public ContactListAdapter(Context context, Cursor cursor) { super(context, cursor); } @Override public ContactHolder […]

如何通过ContentResolver在ContentProvider中调用自定义方法,然后访问Bundle?

我有一个自定义方法save()在我想通过ContentResolver调用的自定义ContentProvider类MyContentProvider中。 目标是将一个POJO作为一个Bundle传递给MyContentProvider 。 我正在使用这里提到的和在 这里定义的call方法。 我没有得到任何错误。 该方法只是没有访问。 自定义方法的(缩写)自定义ContentProvider如下所示: public class MyContentProvider extends ContentProvider { public void save() { Log.d("Test method", "called"); } } 我这样称呼它: ContentResolver contentResolver = context.getContentResolver(); Bundle bundle = new Bundle(); bundle.putSerializable("pojo", getPojo()); contentResolver.call(Contracts.CONTENT_URI, "save", null, bundle); 为什么save方法从来没有被调用过,如果我到了这个地步,我怎样才能在save()方法中访问被调用的Uri和Bundle呢? 我无法在SO或网上的任何地方find任何参考。 谢谢您的回答!

如何使FileProvider可用于其他应用程序?

有没有可能有一个FileProvider可用于其他应用程序? 的manifest.xml … <provider android:name="android.support.v4.content.FileProvider" android:authorities="com.example.myapp.fileprovider" android:exported="true" android:grantUriPermissions="false" android:permission="com.example.filesvisible.permission.READ" > <meta-data android:name="android.support.FILE_PROVIDER_PATHS" android:resource="@xml/filespath" /> </provider> … 从文档 : false:提供程序不适用于其他应用程序。 设置android:exported =“false”来限制对提供者访问你的应用程序。 只有具有与提供者相同的用户ID(UID)的应用程序才能访问它。 我试图设置导出为true,但我得到了这个exceptionUnable to get provider android.support.v4.content.FileProvider: java.lang.SecurityException: Provider must not be exported为什么我不能导出FileProvider?

Android:getContext()。getContentResolver()有时会得到NullPointerException

我想问为什么我们得到这个注释: 方法调用getContext.getContentResolver()可能会产生NullPointerException 为什么它在那里,而不是在程序片段/活动的其他部分? 这个方法已经在谷歌教程中使用 – 这里是链接的ContentProvider代码https://github.com/udacity/Sunshine-Version-2/blob/sunshine_master/app/src/main/java/com/example/android /sunshine/app/data/WeatherProvider.java,即使您仅使用空白活动创build应用程序,并将该方法放在新创build的ContentProvider中,也是如此。 我们应该使用getContext().getContentResolver().notifyChange(uri, null); 外部ContentProvider获取uri通过,然后更新/插入/删除完成notifyChange? 或者也许我们可以修复它?

如何访问收件箱中收到的短信时间?

我可以从这个收件箱中读取消息: Uri uriSMSURI = Uri.parse("content://sms/inbox"); Cursor cur = getContentResolver().query(uriSMSURI, null, null, null, null); 我从这个访问date: – date = cur.getString(cur.getColumnIndexOrThrow("date")); 但现在的问题是,它给当前时间不是收件箱中的消息时间。 对不起,编辑不好,任何想法将不胜感激。 提前致谢!

Android:听到像WhatsApp这样的联系人更改

我正在构build一个严重依赖用户联系人的应用程序。 我已经创build了一个Account并在需要时代表这个帐户创buildRawContacts 。 而且我使用SyncAdapter ,事情很好。 但是我仍然错过了这个难题的一些部分: 我试图实现类似于WhatsApp的行为。 这样 – 当任何联系人的姓名或电话发生变化时,将发送给服务器进行评估 。 无论此联系人是否已经在“我的” RawContacts ,他是否刚刚由用户创build。 我知道有ContentObserver但跟踪ContactsContract.Contacts.CONTENT_URI似乎是错误的事情要做,因为它没有给出具体的变化,再加上它被提升了很多次,并从许多事件不感兴趣。 我知道WhatsApp正在使用SyncAdapter,但我认为他们可能会做更多的事情。 任何想法将不胜感激。

如何在SyncAdapter完成时通知呼叫活动?

在我的Android项目中,我使用一个自定义SyncAdapter来下载数据并将其存储在本地SQLite数据库中。 public class CustomSyncAdapter extends AbstractThreadedSyncAdapter { public CustomSyncAdapter(Context context, boolean autoInitialize) { super(context, autoInitialize); } @Override public void onPerformSync(Account account, Bundle extras, String authority, ContentProviderClient provider, SyncResult syncResult) { // 1) Download data via AsyncTask // 2) Store data via ContentProvider } } 我使用ContentResolver来安排主Activity同步,例如… ContentResolver.requestSync(account, Authentication.AUTHORITY, bundle); 在同步完成后有没有通知调用Activity的通用方法?

如何使用内容parsing器/提供者testing类?

我试图testing查询内容parsing器的类。 我想使用MockContentResolver和模拟query方法。 问题是这个方法是最终的。 我该怎么办? 使用模拟框架? 嘲笑其他课程? 提前致谢。 public class CustomClass { private ContentResolver mContentResolver; public CustomClass(ContentResolver contentResolver) { mContentResolver = contentResolver; } public String getConfig(String key) throws NoSuchFieldException { String value = null; Cursor cursor = getContentResolver().query(…); if (cursor.moveToFirst()) { //… } //.. } }

在Android中使用Content Provider批量删除项目

我试图批量删除表中的一些项目。 String ids = { "1", "2", "3" }; mContentResolver.delete(uri, MyTables._ID + "=?", ids); 不过,我不断收到这个错误 java.lang.IllegalArgumentException:太多的绑定参数。 提供了3个参数,但声明需要1个参数。