在mms这个应用,就是短信中他的androidmanifest.xml的provider中使用了隐式的intent解析content://sms/inbox这个uri。
解决方案 »
- 检查一下你的编程语言基础知识怎么样,说出这段代码输出结果,为什么?
- android Webview PostUrl httpheaders问题
- android 炒股软件(上图)
- android中在TextView上显示文字时如何处理对齐
- 2.1 的powercontrol widget的问题
- 调用 手机 图片工具的 问题
- Android 中如何对图片做像素级的处理?
- Android Studio 指行调试的时候报错:Target package is not specified in AndroidManifest.xml
- eclipse导入第三方jar包HttpClient 编译不过问题
- 新人发帖-google map如何得到生活信息
- 对一道面试题的解析,让你了解试题的背后
- Android老油条请进
谢谢你的回答,我想问的是,如何得到content://sms/inbox这个uri???现在我短信收件箱是这个,但下次如果找其它资源的uri,又不会找了
<provider
android:name=".RememberWordContentProvider"
android:authorities="jxt.base.contentprovider.rememberword"
android:multiprocess="true"/>authorities这个属性定义的是每个内容提供者的唯一标志即对应于 content://sms/inbox 中的sms部分
Android系统将部分的内容提供者的authority定义成了变量,有phone、sms等,现在忘了具体定义了,楼主可以查查一般自己定义的内容提供者,可以如下写(以上面的为例):
content://jxt.base.contentprovider.rememberword/
后面加的就是要操作的参数,这个参数在nrtgz中进行了匹配:如下:
//定义匹配的变量
private static final int TYPE = 1;
private static final int BOOK = 2;
private static final int WORDS = 3;//用UriMatcher进行匹配
static{
//常量UriMatcher.NO_MATCH表示不匹配任何路径的返回码(-1)
uriMatcher = new UriMatcher(UriMatcher.NO_MATCH);
/**
* addUri方法用于添加ContentProvider的URI
* 参数一:ContentProvider的ID
* 参数二:表示URI的path部分,这里是要操作的表名
* 参数三:表示与path对应的代码
*/
uriMatcher.addURI(AUTHORITY, T_BOOK_TYPE, TYPE);
uriMatcher.addURI(AUTHORITY, T_BOOK_INFOR, BOOK);
uriMatcher.addURI(AUTHORITY, T_WORD_INFOR, WORDS);
}最后用内容解析者解析时传的Uri 中的第三个参数,对应楼主的inbox最后在内容提供者的每个增删改查方法中匹配该Uri:
int match = uriMatcher.match(uri);
用match 和上面定义的 变量进行匹配,做相应的操作。‘大致流程就是这样,希望楼主能听懂!
请问是不是一定要把jxt.base.contentprovider.rememberword声明成名称为AUTHORITY的常量呢?
还要是不是我们在Manifest.xml中进行声明后,其它程序如果想访问,写入我们提供的CONTENT_URI系统就会自动去找到我们的数据源??谢谢你