前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >[android] 内容提供者简介

[android] 内容提供者简介

作者头像
唯一Chat
发布2019-09-10 11:08:59
4620
发布2019-09-10 11:08:59
举报
文章被收录于专栏:陶士涵的菜地

产生的原因是,当我们把数据存到数据库的时候,数据库的权限是私有的,把系统的短信应用中的数据库导出来,打开看到address字段是手机的号码,date字段是时间,type字段1,2代表发出去的短信和接受到的短信,body字段代表短信的数据。要想让别的应用程序访问自己数据库的数据,这时需要自己把数据给暴露出来。

新建一个类比如PersonProvider,先继承系统的ContentProvider类,这个类是android四大组件之一,暴露自己的私有数据,别的应用通过ContentResolver类来获取数据。组件在应用的时候必须在清单文件中去配置

在Application节点下面,添加节点<Provider android:name=”全类名” android:authorities=”主机名”></Provider>

name指定内容提供者的全类名

authorities代表主机名 通常是包名+业务名

小技巧,在eclipse左侧文件列表中,点击我们创建的类旁边的加号,看到定义的类,右键==> Copy Qualified Name拷贝全类名,包名加类名

此时会报黄色警告,说需要设置一下权限android:permission,可以不设置

继承之后需要实现以下方法:

query() 查询

insert() 插入

delete() 删除

update() 修改

都带有一个参数Uri对象,代表一个路径一个地址,我们需要检查这个Uri

清单文件:

代码语言:javascript
复制
        <provider
            android:name="com.tsh.database.PersonDbProvider"
            android:authorities="com.tsh.database.PersonDbProvider">
        </provider>

提供者:

代码语言:javascript
复制
package com.tsh.database;

import android.content.ContentProvider;
import android.content.ContentValues;
import android.database.Cursor;
import android.net.Uri;

public class PersonDbProvider extends ContentProvider {

    @Override
    public boolean onCreate() {
        // TODO Auto-generated method stub
        return false;
    }

    @Override
    public Cursor query(Uri uri, String[] projection, String selection,
            String[] selectionArgs, String sortOrder) {
        // TODO Auto-generated method stub
        return null;
    }

    @Override
    public String getType(Uri uri) {
        // TODO Auto-generated method stub
        return null;
    }

    @Override
    public Uri insert(Uri uri, ContentValues values) {
        // TODO Auto-generated method stub
        return null;
    }

    @Override
    public int delete(Uri uri, String selection, String[] selectionArgs) {
        // TODO Auto-generated method stub
        return 0;
    }

    @Override
    public int update(Uri uri, ContentValues values, String selection,
            String[] selectionArgs) {
        // TODO Auto-generated method stub
        return 0;
    }

}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2016-03-12 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
短信
腾讯云短信(Short Message Service,SMS)可为广大企业级用户提供稳定可靠,安全合规的短信触达服务。用户可快速接入,调用 API / SDK 或者通过控制台即可发送,支持发送验证码、通知类短信和营销短信。国内验证短信秒级触达,99%到达率;国际/港澳台短信覆盖全球200+国家/地区,全球多服务站点,稳定可靠。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档