Android——ContentProvider


xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.chenshuai.myapplication.ActivityContentProvider"
android:orientation="vertical"> <Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="查询数据"
android:onClick="chaxun_onclick"/> <Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="添加数据"
android:onClick="tianjia_onclick"/>
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="更新数据"
android:onClick="gengxin_onclick"/> <Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="删除数据"
android:onClick="shanchu_onclick"/>
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="读取联系人信息"
android:onClick="duqu_onclick"/> </LinearLayout>
JAVA
package com.example.chenshuai.myapplication; import android.content.ContentResolver;
import android.content.ContentUris;
import android.content.ContentValues;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.provider.ContactsContract;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Toast; public class ActivityContentProvider extends AppCompatActivity { @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_activity_content_provider);
/*
Intent intent = new Intent(Intent.ACTION_DIAL); Uri uri = Uri.parse("tel:110"); intent.setData(uri);*/
}
public void chaxun_onclick(View view)
{
//获得解析器
ContentResolver contentResolver = getContentResolver(); Uri uri = Uri.parse("content://com.example.cheshuai.test.activityhhh1/black_number"); /*contentResolver.update(uri,new ContentValues(),"",new String[]{}); Toast.makeText(ActivityContentProvider.this, "调用内容提供者", Toast.LENGTH_SHORT).show();*/ Cursor cursor = contentResolver.query(uri, null, null, null, null); while (cursor.moveToNext())
{
Toast.makeText(ActivityContentProvider.this, "遍历数据:_id = "+cursor.getLong(0)+
"phone_number= "+cursor.getString(1), Toast.LENGTH_SHORT).show();
} cursor.close();
}
public void tianjia_onclick(View view)
{
//获得解析器
ContentResolver contentResolver = getContentResolver(); Uri uri = Uri.parse("content://com.example.cheshuai.test.activityhhh1/black_number"); /*contentResolver.update(uri,new ContentValues(),"",new String[]{}); Toast.makeText(ActivityContentProvider.this, "调用内容提供者", Toast.LENGTH_SHORT).show();*/ ContentValues c= new ContentValues();
c.put("phone_number","123456"); uri = contentResolver.insert(uri,c); long id = ContentUris.parseId(uri); Toast.makeText(ActivityContentProvider.this, "新数据的id="+id, Toast.LENGTH_SHORT).show();
}
public void gengxin_onclick(View view)
{
//获得解析器
ContentResolver contentResolver = getContentResolver(); Uri uri = Uri.parse("content://com.example.cheshuai.test.activityhhh1/black_number"); /*contentResolver.update(uri,new ContentValues(),"",new String[]{}); Toast.makeText(ActivityContentProvider.this, "调用内容提供者", Toast.LENGTH_SHORT).show();*/ ContentValues c= new ContentValues(); c.put("phone_number","123456"); int content = contentResolver.update(uri, c, null, null); Toast.makeText(ActivityContentProvider.this, "返回修改的数据?"+content, Toast.LENGTH_SHORT).show();
}
public void shanchu_onclick(View view)
{
ContentResolver contentResolver = getContentResolver(); Uri uri = Uri.parse("content://com.example.cheshuai.test.activityhhh1/black_number"); int btn = contentResolver.delete(uri, "_id>?", new String[]{"1"}); Toast.makeText(ActivityContentProvider.this, "删除数据条数"+btn, Toast.LENGTH_SHORT).show(); }
public void duqu_onclick(View view)
{
ContentResolver contentResolver = getContentResolver(); //联系人信息的URI 授权
//管理联系人的Uri
//ContactsContract.Contacts.CONTENT_URI //管理联系人电话的Uri
//ContactsContract.CommonDataKinds.Phone.CONTENT_URI
Cursor cursor = contentResolver.query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null, null); while(cursor.moveToNext())
{
long id = cursor.getLong(cursor.getColumnIndex(ContactsContract.Contacts._ID)); String name = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME)); Toast.makeText(ActivityContentProvider.this, "数据id= "+id + "数据name= "+name, Toast.LENGTH_SHORT).show(); //通过id查询联系人的电话信息 Cursor cursor1 = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,null,
ContactsContract.CommonDataKinds.Phone.CONTACT_ID + "=?", new String[]{id +""},null); while (cursor1.moveToNext())
{
String phone = cursor1.getString(cursor1.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)); Toast.makeText(ActivityContentProvider.this, "电话信息= "+ phone, Toast.LENGTH_SHORT).show(); }
cursor1.close();
}
cursor.close(); } }
manifest
<!-- 读取联系人权限 -->
<uses-permission android:name="android.permission.READ_CONTACTS" /> <provider
android:name=".MyContentProvider"
android:authorities="com.example.cheshuai.test.activityhhh1"
android:enabled="true"
android:exported="true" />
Android——ContentProvider的更多相关文章
- Android基础 : Android ContentProvider
Android 应用程序通过ContentProvider实现方式统一的数据共享功能. 外界的程序通过ContentResolver接口可以访问ContentProvider提供的数据,在Activi ...
- Android ContentProvider完整案例
ContentData类,提供数据常量: /** * 提供ContentProvider对外的各种常量,当外部数据需要访问的时候,就可以参考这些常量操作数据. * @author HB * */ pu ...
- Android ContentProvider基本用法
转自:https://www.jianshu.com/p/601086916c8f 一.基本概念 ContentProvider是Android系统中提供的专门用户不同应用间进行数据共享的组件,提供了 ...
- Android ContentProvider 启动分析
对于 ContentProvider 还不是很熟悉的同学,可以阅读上一篇 Android ContentProvider 基本原理和使用详解.本文主要是对 contentProvider 的源码进行分 ...
- Android ContentProvider介绍
在Android中数据的存储一共有五种形式,分别是:Shared Preferences.网络存储.文件存储,外储存储.SQLite.但是我们知道一般这些存储都只是在单独的一个应用程序之中达到一个数据 ...
- Android ContentProvider 简单学习
当应用继承ContentProvider类,并重写该类用于提供数据和存储数据的方法,就可以向其他应用共享其数据.以前我们学习过文件的操作模式,通过指定文件的操作模式为Context.MODE_WORL ...
- Android ContentProvider的实现
当Android中的应用需要访问其他应用的数据时,用ContentProvider可以很好的解决这个问题.今天介绍一下ContentProvider的用法. 首先开发ContentProvider有两 ...
- Android ContentProvider和Uri详解 (绝对全面)
ContentProvider的基本概念 : 1.ContentProvider为存储和读取数据提供了统一的接口 2.使用ContentProvider,应用程序可以实现数据共享 3.andr ...
- Android ContentProvider和getContentResolver
安卓系统中的数据库SqlLite操作和java中mysql的数据库操作很不一样,造成这样的原因是因为在安卓中数据库是属于进程的不存在数据库客户端,也不存在数据库服务器. 关于SqlLite数据库的文章 ...
- android ContentProvider学习
1.ContentProvider提供位存储或获取数据提供了统一的接口. 2.使用ContentProvider可以在不同的应用程序之间共享数据. 3.Android为常见的一些数据提供了Conten ...
随机推荐
- SharePoint 2013 Backup Farm Automatically With a Powershell and Windows Task Schedule
In this post,I will show you SharePoint 2013 How to Backup Farm Automatically with a PowerShell and ...
- kibana 的search 的的搜索提示挡住输入框
解决方案就是 [root@10-19-148-59 styles]# pwd /data/package/kibana/src/public/styles [root@10-19-148-59 sty ...
- win 7 下合并多个表格
首先我这里从服务器上下载了一大堆的表格 分类放好之后 这里我们需要把每一类的表格合并成一张表格 这里我们使用win 7下的copy的命令 这里我的表格的格式是csv 使用cmd 我们先cd到你的表格的 ...
- java FileReader/FileWriter读写文件
java FileReader/FileWriter读写字母和数字没问题,但读写汉字就乱码.记录下,后面找到解决方法再补上. public static void main(String[] args ...
- [CTCI] 最大子方阵
最大子方阵 题目描述 有一个方阵,其中每个单元(像素)非黑即白(非0即1),请设计一个高效算法,找到四条边颜色相同的最大子方阵. 给定一个01方阵mat,同时给定方阵的边长n,请返回最大子方阵的边长. ...
- 腾讯云服务器 Centos6.5 安装 nginx1.12.0
今天买了腾讯云,不要问我为什么没有买阿里云... 入正题: 如果出现 CentOS ping: unknown host 的话,表示没有配置dns vim /etc/sysconfig/network ...
- IOS高访微信聊天对话界面(sizeWithFont:constrainedToSize和stretchableImageWithLeftCapWidth的使用)
大家好,百忙之中,抽出点空,写个微博,话说好久没写. 最近项目中有碰到写类似微信聊天界面上的效果,特整理了一下,写了一个小的Demo,希望给没头绪的同学们一个参考! 下载地址:http://files ...
- 【Unity】12.1 基本概念
开发环境:Win10.Unity5.3.4.C#.VS2015 创建日期:2016-05-09 一.简介 导航网格(Navmesh)是世界坐标系中几何体的简化表示,被游戏代理用来进行全局导航.通常,代 ...
- iOS7相机隐私判断
转自:http://borissun.iteye.com/blog/1992303 装了iOS7的ip5的隐私设置里多了相机这一项(ip4装iOS7就没有). 如果隐私里把你的app对应的相机给关了, ...
- JavaWEB springmvc 使用定时任务
1.配置web.xml 在web.xml配置使用springmvc框架,其他配置略. <display-name>xxx.com</display-name> <!-- ...