- 浏览: 1056012 次
- 性别:
- 来自: 南昌
文章分类
- 全部博客 (276)
- 生活 (1)
- 代码之美 (22)
- Media (7)
- Android Widget (3)
- Android Intent (1)
- Android Activity (4)
- UI event handle--UI事件处理机制 (2)
- Java基础知识 (12)
- android Databases (5)
- Android 系统知识 (70)
- 平常遇到的问题与解决方法 (38)
- Android TextView/EditView (2)
- Thinking Java (1)
- android webkit (6)
- JSON (1)
- XML (4)
- HTTP (1)
- Google Weather API (1)
- android 2.3 NFC (10)
- android app (20)
- android framework (7)
- C++ (2)
- android System (5)
- Pthread (1)
- Wifi (8)
- Unix/Linux C (8)
- Android 4.0 (1)
- Mail (1)
- Smack 源码学习 (4)
- iOS (4)
- Android (1)
- git (1)
- Gallery3d (2)
- React-Natice (1)
最新评论
-
dd18349182956:
你是用的smack哪个版本?我用的smack4.1.3和sma ...
关于socket长连接的心跳包 -
xukaiyin:
全英文
getApplicationContext()与this,getBaseContext() -
裂风矢:
...
<category android:name="android.intent.category.DEFAULT" /> 惹的祸 -
xanthodont:
mark一下
XMPP——Smack -
Evilover3:
mark一下,学习了
XMPP——Smack
很早之前接触ContentProvider知道它提供的方法就是query,insert,update,delete这几个常用的方法,最近在解决Email的问题时发现ContentProvider提供了一个有意思的方法Call,通过这个方法可调用到ContentProvider自定义的方法。
调用cr.call(Uri.parse(callbackUri), callbackMethod, callbackArg, statusExtras);
http://androidxref.com/8.0.0_r4/xref/packages/apps/Email/emailcommon/src/com/android/emailcommon/service/EmailServiceStatus.java
EmailProvider中的call
http://androidxref.com/8.0.0_r4/xref/packages/apps/Email/provider_src/com/android/email/provider/EmailProvider.java
/** * Call a provider-defined method. This can be used to implement * interfaces that are cheaper and/or unnatural for a table-like * model. * * <p class="note"><strong>WARNING:</strong> The framework does no permission checking * on this entry into the content provider besides the basic ability for the application * to get access to the provider at all. For example, it has no idea whether the call * being executed may read or write data in the provider, so can't enforce those * individual permissions. Any implementation of this method <strong>must</strong> * do its own permission checks on incoming calls to make sure they are allowed.</p> * * @param method method name to call. Opaque to framework, but should not be {@code null}. * @param arg provider-defined String argument. May be {@code null}. * @param extras provider-defined Bundle argument. May be {@code null}. * @return provider-defined return value. May be {@code null}, which is also * the default for providers which don't implement any call methods. */ public @Nullable Bundle call(@NonNull String method, @Nullable String arg, @Nullable Bundle extras) { return null; }
调用cr.call(Uri.parse(callbackUri), callbackMethod, callbackArg, statusExtras);
http://androidxref.com/8.0.0_r4/xref/packages/apps/Email/emailcommon/src/com/android/emailcommon/service/EmailServiceStatus.java
private static void syncStatus(final ContentResolver cr, final Bundle syncExtras, final int statusType, final long id, final int statusCode, final int progress, int syncResult, final StatusWriter writer) { final String callbackUri = syncExtras.getString(SYNC_EXTRAS_CALLBACK_URI); final String callbackMethod = syncExtras.getString(SYNC_EXTRAS_CALLBACK_METHOD); if (callbackUri != null && callbackMethod != null) { final String callbackArg = syncExtras.getString(SYNC_EXTRAS_CALLBACK_ARG, ""); final Bundle statusExtras = new Bundle(4); statusExtras.putInt(SYNC_STATUS_TYPE, statusType); statusExtras.putLong(SYNC_STATUS_ID, id); statusExtras.putInt(SYNC_STATUS_CODE, statusCode); if (statusCode != IN_PROGRESS) { statusExtras.putInt(SYNC_RESULT, syncResult); } statusExtras.putInt(SYNC_STATUS_PROGRESS, progress); if (writer != null) { writer.addToStatus(statusExtras); } cr.call(Uri.parse(callbackUri), callbackMethod, callbackArg, statusExtras); } }
EmailProvider中的call
http://androidxref.com/8.0.0_r4/xref/packages/apps/Email/provider_src/com/android/email/provider/EmailProvider.java
@Override public Bundle call(String method, String arg, Bundle extras) { LogUtils.d(TAG, "EmailProvider#call(%s, %s)", method, arg); // Handle queries for the device friendly name. // TODO: This should eventually be a device property, not defined by the app. if (TextUtils.equals(method, EmailContent.DEVICE_FRIENDLY_NAME)) { final Bundle bundle = new Bundle(1); // TODO: For now, just use the model name since we don't yet have a user-supplied name. bundle.putString(EmailContent.DEVICE_FRIENDLY_NAME, Build.MODEL); return bundle; } // Handle sync status callbacks. if (TextUtils.equals(method, SYNC_STATUS_CALLBACK_METHOD)) { updateSyncStatus(extras); return null; } if (TextUtils.equals(method, MailboxUtilities.FIX_PARENT_KEYS_METHOD)) { fixParentKeys(getDatabase(getContext())); return null; } // Handle send & save. final Uri accountUri = Uri.parse(arg); final long accountId = Long.parseLong(accountUri.getPathSegments().get(1)); Uri messageUri = null; if (TextUtils.equals(method, UIProvider.AccountCallMethods.SEND_MESSAGE)) { messageUri = uiSendDraftMessage(accountId, extras); Preferences.getPreferences(getContext()).setLastUsedAccountId(accountId); } else if (TextUtils.equals(method, UIProvider.AccountCallMethods.SAVE_MESSAGE)) { messageUri = uiSaveDraftMessage(accountId, extras); } else if (TextUtils.equals(method, UIProvider.AccountCallMethods.SET_CURRENT_ACCOUNT)) { LogUtils.d(TAG, "Unhandled (but expected) Content provider method: %s", method); } else { LogUtils.wtf(TAG, "Unexpected Content provider method: %s", method); } final Bundle result; if (messageUri != null) { result = new Bundle(1); result.putParcelable(UIProvider.MessageColumns.URI, messageUri); } else { result = null; } return result; }
发表评论
-
android.database.sqlite.SQLiteReadOnlyDatabaseException: attempt to write a read
2015-11-27 14:50 2910android.database.sqlite.SQLiteR ... -
形成一个Resource Uri
2011-02-28 09:51 2945形成一个Resource Uri: public Uri ... -
getStringArray
2011-02-26 11:25 4199将String集放在String的resource里面:(Qu ... -
如何让你的list不被修改
2011-02-25 16:52 1453今天在看QuickSearchBox的源码:发现了可以对lis ... -
按Back key把Activity关掉即使有键盘的时候
2011-02-21 10:38 3066一般情况下,当键盘显示的时候,你按下back只会将键盘关掉,但 ... -
R.bool.use_32bit
2011-02-09 16:49 1937很久没有写新的文章,自己懒了吧,没了动力。今天还是耐住了惰性, ... -
让class只有一个实例的例子
2010-10-25 16:49 1790最近在学习android 的webkit,看到一些自己认为是好 ... -
滚动 TextView
2010-04-16 11:39 1280http://bbs.lupa.gov.cn/home/spa ... -
查询Internal 或External的容量
2010-04-14 21:04 1213我们可通过StatF来查询Internal或External的 ... -
关闭android程序
2010-03-17 17:17 1635转自:http://mingkg21.iteye.com/bl ... -
自定义android Intent Action与继承TextView形成一个动态改变text的View
2010-03-12 17:35 4681//Activity package com.android. ... -
Java Formatter
2010-03-09 20:33 1679摘自:http://hi.baidu.com/banseon/ ... -
获得手机系统设置的区域
2010-03-09 19:45 1997通过Locate这个类,我们可以获得手机系统设置的区域: ja ... -
关于android获得图片的总结
2010-03-08 14:50 63411,已将图片保存到drawable目录下 [color=cya ... -
android 视频的缩图制作
2010-03-05 15:46 2796在Gallery 这支ap里我们可 ... -
RandomAccessFile
2010-03-05 15:00 4025随机访问类(RandomAccessFile) - [] 输 ... -
Java iterator
2010-02-27 11:29 1468摘自[url]http://hi.baidu.com/heyi ... -
检查盘volumn的容量
2010-02-26 10:57 1385通过StatFs可以获得Filesystem 的状态 Str ... -
检查盘volumn是否可以写入
2010-02-26 10:44 946通过创建一个临时文件来确定是否盘可写。注意不要把文件放在根目录 ... -
Thread
2010-02-26 10:08 1875android 对UI的操作只能在UI线程(一般是在Activ ...
相关推荐
关于android的数据存储-SQLite-ContentProvider-preferences
具体说明已经在Blog里说明,如还有不懂的地方可以给我留言
NULL 博文链接:https://fuchangle.iteye.com/blog/1842305
filecraft-contentprovider-介绍FileCraft ContentProvider 示例 Android 应用程序。 在 Google Play 商店中与 FileCraft 一起使用。 这是示例插件应用程序的早期版本。 随着我更多地测试和使用它,事情可能会发生...
ContentProvider-Demo内容提供者的Demo
该项目的目标是为 iQser GIN 语义中间件 ( ) 的 CSV 文件提供 ContentProvider 插件。 iQser GIN(全球信息网络)平台是一个企业级、高度可扩展的语义中间件,其功能包括数据集成、分析、过程控制和信息检索,包括...
由niPRO-Project开发的用于Signavio BPMN流程的ContentProvider集成到GinServer 2.0中
一个ContentProvider类 SQLiteOpenHelper类 每个实体一个Columns类 每个实体一个Cursor类 每个实体一个ContentValues类 每个实体一个Selection类 每个实体一个Model接口 每个实体一个Bean类(可选) 用法 有两种可能...
介绍ContentProvider使用方法,包括最简单的用法,一个项目中创建多个ContentProvider分别操作数据库表,以及一个ContentProvider操作多张数据库表的用法。
ContentProvider-----一个完整的样例
个人整理的Android Intent的使用介绍 Android 组件之间的信使Intent Android 中的数据存取和ContentProvider
在前面两篇文章中我们分别讲了如何读写联系人和短消息,相信大家对于ContentProvider的操作方法已经有了一定程度的了解。在有些场合,除了操作ContentProvider之外,我们还有可能需要创建自己的ContentProvider,来...
contentprovider
ContentProvider远程数据操作-带监听(2.0).zip ContentProvider远程数据操作-带监听(2.0).zip ContentProvider远程数据操作-带监听(2.0).zip ContentProvider远程数据操作-带监听(2.0).zip
android-关于ContentProvider的使用例子 有详细注释
4.3ContentProvider(new) - 副本
1、Android Room操作SQLite数据 2、ContentProvider使用,使用Room进行数据库操作
ContentProvider自定义以及使用系统ContentProvider
077集-ContentProvider(1)视频教程,个人感觉还可以,共享给大家。
ContentProvider概述 ContentProvider概述 ...ContentProvider概述ContentProvider概述ContentProvider概述ContentProvider概述ContentProvider概述 ContentProvider概述ContentProvider概述ContentProvider概述