ContentProvider让APP使用自己的数…

来源:互联网 发布:知乎周刊plus打包 编辑:程序博客网 时间:2024/06/03 20:37
ContentProvider就是一个内容提供者,向一个Activity一样,需要在Manifest中声明,声明之后就可以用ContentResolver通过被定义好的Uri来访问。
注意,在代码中:
1、必须声明此ContentProvider的唯一标识符AUTHORITY
2、定义静态变量CODE,标识被访问的数据库中的资源(表)
3、添加Uri,算是提供给用户的访问接口,用户就通过Uri来访问ContentProvider
在Manifest中:
1、需要声明provider
2、需要指定唯一标识AUTHORITY
3、需要声明被访问的权限,并在application标签上声明
4、android:exported="true",允许被外部访问


//声明MyContentProvider的唯一标识符
public static final String AUTHORITY= "com.fqianfeng.day26_test_contentprovider.mytest";
//声明数据库的资源(表)定义CODE标识
public static final int CODE_NEWS =0x1;
private static UriMatcheruriMatcher;
static{
uriMatcher = newUriMatcher(UriMatcher.NO_MATCH);
//生成Uri:content://com.fqianfeng.day26_test_contentprovidercontentprovider.mytest/tb_news
uriMatcher.addURI(AUTHORITY,"tb_news", CODE_NEWS);
}

之后再写自己的方法,加载数据到数据库

manifest.xml中的部分代码:
<!-- 声明访问该组件的权限 -->
<permission android:name="com.fqianfeng.day25_contentprovider.contentprovider.READ_WRITE" />
    
<!-- 使用该组件的权限 -->
<uses-permission android:name="com.fqianfeng.day25_contentprovider.contentprovider.READ_WRITE"/>

   
<!-- 注册ContentProvider组件
        android:authorities:声明该组件的唯一标识
        android:permission:声明该组件的权限
        android:exported="true":声明该组件可以被外界应用访问
         -->
        <provider 
            android:name="com.fqianfeng.day25_contentprovider.contentprovider.UserContentProvider"
            android:authorities="com.fqianfeng.day25_contentprovider.users"
            android:permission="com.fqianfeng.day25_contentprovider.contentprovider.READ_WRITE"
            android:exported="true"
            />
 

0 0
原创粉丝点击