zoukankan      html  css  js  c++  java
  • [android] 内容提供者简介

    产生的原因是,当我们把数据存到数据库的时候,数据库的权限是私有的,把系统的短信应用中的数据库导出来,打开看到address字段是手机的号码,date字段是时间,type字段12代表发出去的短信和接受到的短信,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

    清单文件:

            <provider
                android:name="com.tsh.database.PersonDbProvider"
                android:authorities="com.tsh.database.PersonDbProvider">
            </provider>

    提供者:

    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;
        }
    
    }
  • 相关阅读:
    使用OCR来帮助LR实现认证码识别
    Oracle的AWR报告分析
    oracle创建表空间
    Bug管理工具之Mantis_配置篇
    Selenium学习笔记之外部化相关测试数据---xml
    性能测试学习之二 ——性能测试模型(PV计算模型)
    性能测试学习之三—— PV->TPS转换模型&TPS波动模型
    性能测试学习之一 ——性能测试指标
    性能测试之吞吐量
    记录几个 Android x86 系统的官网
  • 原文地址:https://www.cnblogs.com/taoshihan/p/5270132.html
Copyright © 2011-2022 走看看