Android存储数据---内容提供者ContentProvider
- 简介
内容提供者的使用
2. 实例
(1)activity_main.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:background="@drawable/bg9"android:padding="5dp"android:orientation="vertical"tools:context="lesson10.computer.app2.MainActivity"><Buttonandroid:id="@+id/btn"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginTop="10dp"android:background="#FFF5EE"android:text="查看短信"android:textSize="30sp"android:padding="5dp"android:onClick="readsms"/><TextViewandroid:id="@+id/tv_des"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="读到的系统短信如下:"android:textSize="20sp"android:layout_marginTop="10dp"android:visibility="invisible"/><ListViewandroid:id="@+id/lv"android:layout_width="match_parent"android:layout_height="wrap_content"android:divider="#cccccc"android:dividerHeight="1dp"></ListView></LinearLayout>
(2)itemlayout.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:gravity="center_vertical"android:orientation="vertical"><TextViewandroid:id="@+id/item_phone"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="手机号码"android:textSize="18sp" /><TextViewandroid:id="@+id/item_sms"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="短信内容"android:textSize="16sp" />
</LinearLayout>
(3)主函数MainActivity
package lesson10.computer.app2;import android.Manifest;
import android.content.ContentResolver;
import android.content.Context;
import android.content.pm.PackageManager;
import android.database.Cursor;
import android.net.Uri;
import android.support.v4.app.ActivityCompat;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ListView;
import android.widget.ResourceCursorAdapter;
import android.widget.TextView;
import android.widget.Toast;public class MainActivity extends AppCompatActivity {private TextView tvDev;private ListView listView;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);tvDev = (TextView) findViewById(R.id.tv_des);listView = (ListView) findViewById(R.id.lv);}/*** 读取系统短信* @param v*/public void readsms(View v){//动态申请读取短信的权限int permission = ActivityCompat.checkSelfPermission(this, Manifest.permission.READ_SMS);if(permission != PackageManager.PERMISSION_GRANTED){ActivityCompat.requestPermissions(this,new String[]{Manifest.permission.READ_SMS},1);return;}//短信的uriUri uri = Uri.parse("content://sms/");//获取内容解析器ContentResolver resolver = this.getContentResolver();Cursor cursor = resolver.query(uri, new String[]{"_id", "address", "date", "type", "body"}, null, null, null);if(cursor !=null && cursor.getCount()>0){tvDev.setVisibility(View.VISIBLE);MyAdapter adapter = new MyAdapter(this,R.layout.itemlayout,cursor);listView.setAdapter(adapter);}}@Overridepublic void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {switch (requestCode){case 1:if(permissions.length > 0 && grantResults[0] != PackageManager.PERMISSION_GRANTED){//拒绝Toast.makeText(MainActivity.this, "需要授权后使用!", Toast.LENGTH_SHORT).show();}else{//允许this.readsms(null);}break;}super.onRequestPermissionsResult(requestCode, permissions, grantResults);}public class MyAdapter extends ResourceCursorAdapter{public MyAdapter(Context context, int layout, Cursor c) {super(context, layout, c, true);}@Overridepublic void bindView(View view, Context context, Cursor cursor) {TextView tvPhone = (TextView) view.findViewById(R.id.item_phone);TextView tvSms = (TextView) view.findViewById(R.id.item_sms);tvPhone.setText(cursor.getString(1));tvSms.setText(cursor.getString(4));}}}
Android存储数据---内容提供者ContentProvider相关推荐
- Android学习---通过内容提供者(ContentProvider)操作另外一个应用私有数据库的内容...
一.什么是ContentProvider? ContentProvider直译过来就是内容提供者,主要作用就是A应用提供接口给B应用调用数据,和之前介绍的sharedPreference和直接开放文件 ...
- Android开发14——监听内容提供者ContentProvider的数据变化
一.提出需求 有A,B,C三个应用,B中的数据需要被共享,所以B中定义了内容提供者ContentProvider:A应用修改了B应用的数据,插入了一条数据.有这样一个需求,此时C应用需要得到数据被修改 ...
- Android内容提供者ContentProvider总结
一.ContentProvider基础知识 ContentProvider作为Android四大组件之一,相对其他组件来说,应用的场合是最少的了,但是它是有自己独特的作用的,比如为其他程序提供数据.C ...
- 内容提供者ContentProvider, 读写加联系人,读写通话记录,监听收到的短信,获取之前已经收到的短信
1.什么是内容提供者? 首先我们必须要明白的是ContentProvider(内容提供者)是android中的四大组件之一,但是在一般的开发中,可能使用比较少.ContentProvider为不同的软 ...
- android的数据存储方式有哪几种方式,Android存储数据的5种方式
第一种:SharedPreferences 1.使用键值对的方式存储数据 2.通常用于:保存用户的偏好设置.选择是否保存密码.记录文档阅读的位置等 3.实现方式(写入): a).获取SharedPre ...
- android基础之内容提供者使用
上一篇我们说了我内容提供者的创建.这篇我们主要说下内容提供中的使用方法. 要使用内容提供者,我们需要借助于内容提供者的一个工具类ContentResolver.ContentResolver里面的增删 ...
- android的数据存储方式有哪几种方式,android存储数据的几种方式比较
机身内存读取主要用个两个类文件输入流(FileInputStream)和文件输出流(FileOutputStream):FileInputStream fileInput = this.openFil ...
- Android存储数据到本地文件
xml文件 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:too ...
- Android存储数据方式
可以查看Android开发文档中的:/docs/guide/topics/data/data-storage.html Android provides several options for you ...
最新文章
- 阿里深度序列匹配模型SDM:如何刻画大型推荐系统的用户行为?
- 【数据结构与算法】之深入解析“路径交叉”的求解思路与算法示例
- 移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网
- 关于 Docker ,你必须了解的核心都在这里了!
- 2.9 iframe
- Android技术栈总结
- linux远程关机程序,木马中如何编程实现远程关机(VC版)
- vue选项卡切换,某个组件缓存数据keep-alive demo
- EST 云硬盘修复小工具-SAS希捷固件升级工具
- CAJ文件怎么转换成Word文档
- 500VIP源码下载
- ns3中PointToPointDumbbellHelper类的引入方法(哑铃型网络模拟)
- 3D Question Answering
- 项目中如何进行有效的沟通管理(一)
- php实现手机归属地的查询、,PHP实现查询手机归属地的方法详解
- 关于关于接口测试自动化的总结与思考接口测试自动化的总结与思考
- 江西2022农民丰收节开幕式 国稻种芯:活动主场浮梁县举办
- oppo r7刷linux,OPPO R7线刷教程_OPPO R7线刷系统包_R7移动版救砖用
- hbase遇到元数据缺失,hbase:namespace加载错误,hbase启动不了
- 输入月份、年份判断天数:1、3、5、7、8、10、12 -------- 31天4、6 、9、11--------30天 2------------28/29天
热门文章
- 果园机器人的课文_《果园机器人》课文原文
- 武夷岩茶PK铁观音(南北乌龙之我见--清风云雨)
- 编辑为什么建议转投_SCI编辑建议转投容易录用吗
- “谁动了我的奶酪?”的故事
- Git系列:git push -u origin master命令理解
- 接口请求中post与put的区别
- 运营App渠道推广中,如何统计推广效果?
- 投影仪服务器注册商标属于哪类,投影仪商标注册第几类?附:好听的投影仪商标名字...
- (六)安装xdd-plus的保姆级搭建教程+xdd-plus修复+对接青龙+指令用途/看了你就能学废【2022年5月23日】【更新】
- 混在中国,财富保值的必要性,读《金砖四国之梦:通向2050之路》有感