UI数据库难记点

一、contentprovider在AndroidManifest.xml中需要配置的相关属性
<provider 所需元素
 android:name="自建java类继承contentprovider类的全路径名称"
 android:authorities="对外所要暴露的访问本contentprovider路劲一般用主机名(本应用程序的包名)"
 android:exproted="其他数据是否可以访问,一般有true和false两个值"
</provider>
-----------------------------------------------------------
二、获取系统短信
 系统短信的包名是:com.android.provides.telepony
 系统短信数据库:mmssms.db
主要操作:
 sms表(短信的数据)
 //写短信的权限
 <uses-permission android:name="android.permission.WRITE_SMS"/>
 //读短信的权限
     <uses-permission android:name="android.permission.READ_SMS"/>
 查询系统短信的内容提供者的主机名(Uri)是  content://sms
 查询系统短信只需操作一个表(sms表),所以逻辑操作比较简单
-----------------------------------------------------------------
三、获取系统联系人
 系统联系人的包名是:com.android.provides.contacts
 系统联系人数据库:contacts2.db
主要操作:
     raw_contacts表(联系人基本信息)
 contact_id列(练习人id)
     data表(联系人的详细信息)
 data1列(联系人的信息)
 raw_contact_id列(联系人的id,标识该行联系人信息属于哪个联系人)
 mimetype_id列(标识该行联系人信息是什么类型)
     mimetypes表
 mimetype_id列(对应的是什么类型)

查询系统联系人的内容提供者的主机名是:
 content://com.android.contacts
 raw_contacts表(联系人基本信息)  对应的Uri是:content://com.android.contacts/raw_contacts
 data表(联系人的详细信息)对应的Uri是content://com.android.contacts/data

获取系统联系人主要操作3个表raw_contacts表,data表,mimetypes表
 思路:
 1.通过查询raw_contacts表里通过_id列查询出联系人的_id
 2.通过联系人的_id匹配data表的raw_contacts_id列的id,进行条件查询,
   可以得到所有匹配上raw_contacts_id的数据,得到的数据中包含练习人的信息;但是,
   该信息里并没有明确每一条信息的类型,所有要通过mimetype_id到mimetypes表确定数据类型
 3.到mimetypes表里通过mimetype列查询每一条信息类型,代表的具体意思
。。。》》》》《《《《。。。
代码形式的联系人URI写法:
 Query:管理联系人的URI=ContactsContact.Contacts.CONTENT_URI
       电话URI=ContactsContact.CommonDataKinds.Phone.CONTENT_URI
       E-mail URI=ContactsContact. CommonDataKinds.Email.CONTENT_URI
 insert:android.privider.ContactsContact.Data.CONTENT_URI
-------------------------------------------------------
四、获取内外部数据
 Environment.getDataDirectory();获得内部数据文件(机身内部)
 Environment.getExternalStorageDirectory();获得外部数据文件
 file.getTotalSpace//得到此路径的分区的总大小
 Formatter.formatFileSize(Context, long);//格式化字节
五、SD卡读写权限
 android.permission.READ_EXTERNAL_STORAGE//读外置存储设备
 android.permission.WRITE_EXTERNAL_STORAGE//写外部存储设备
 
六、判断SD卡挂载状态
 Environment.getExternalStorageState();//获得sd卡的状态
 MEDIA_BAD_REMOVAL 在没有挂载前存储媒体已经被移除。
 MEDIA_CHECKING 正在检查存储媒体。
 MEDIA_MOUNTED 存储媒体已经挂载,并且挂载点可读/写。
 MEDIA_MOUNTED_READ_ONLY 存储媒体已经挂载,挂载点只读。
 MEDIA_NOFS 存储媒体是空白或是不支持的文件系统。
 MEDIA_REMOVED 存储媒体被移除。
 MEDIA_SHARED 存储媒体正在通过USB共享。
 MEDIA_UNMOUNTABLE 存储媒体无法挂载。
 MEDIA_UNMOUNTED 存储媒体没有挂载

七、StatFs
 getAvailableBlocks() 解释:返回 Int ,获取当前可用的存储空间
 getBlockCount() 解释:返回 Int ,获取该区域可用的文件系统数
 getBlockSize() 解释:返回 Int ,大小,以字节为单位,一个文件系统
 getFreeBlocks() 解释:返回 Int ,该块区域剩余的空间

八、字节转换为MB工具
  Formatter.formatFileSize(context, total);
 第一个参数:上下文。
 第二个参数:字节数。
 返回String类型的MB值。

九、使用contentprovider管理多媒体内容:
 SD卡音频URI=》 MediaStore.Audio.Media.EXTERNAL_CONTENT_URI
 内部卡音频URI=》 MediaStore.Audio.Media.INTERNAL_CONTENT_URI
 SD卡图片URI=》 MediaStore.Images.Media.EXTERNAL_CONTENT_URI
 内部卡图片URI=》 MediaStore.Images.Media.INTERNAL_CONTENT_URI
 SD卡视频URI=》 MediaStore.Video.Media.EXTERNAL_CONTENT_URI
 内部卡视频URI=》 MediaStore.Video.Media.INTERNAL_CONTENT_URI

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值