一、contentprovider在AndroidManifest.xml中需要配置的相关属性
<provider 所需元素
android:name="自建java类继承contentprovider类的全路径名称"
android:authorities="对外所要暴露的访问本contentprovider路劲一般用主机名(本应用程序的包名)"
android:exproted="其他数据是否可以访问,一般有true和false两个值"
</provider>
-----------------------------------------------------------
二、获取系统短信
<provider 所需元素
android:name="自建java类继承contentprovider类的全路径名称"
android:authorities="对外所要暴露的访问本contentprovider路劲一般用主机名(本应用程序的包名)"
android:exproted="其他数据是否可以访问,一般有true和false两个值"
</provider>
-----------------------------------------------------------
二、获取系统短信
系统短信的包名是:com.android.provides.telepony
系统短信数据库:mmssms.db
主要操作:
sms表(短信的数据)
系统短信数据库:mmssms.db
主要操作:
sms表(短信的数据)
//写短信的权限
<uses-permission android:name="android.permission.WRITE_SMS"/>
//读短信的权限
<uses-permission android:name="android.permission.READ_SMS"/>
<uses-permission android:name="android.permission.WRITE_SMS"/>
//读短信的权限
<uses-permission android:name="android.permission.READ_SMS"/>
查询系统短信的内容提供者的主机名(Uri)是 content://sms
查询系统短信只需操作一个表(sms表),所以逻辑操作比较简单
-----------------------------------------------------------------
查询系统短信只需操作一个表(sms表),所以逻辑操作比较简单
-----------------------------------------------------------------
三、获取系统联系人
系统联系人的包名是:com.android.provides.contacts
系统联系人数据库:contacts2.db
主要操作:
raw_contacts表(联系人基本信息)
contact_id列(练习人id)
系统联系人数据库:contacts2.db
主要操作:
raw_contacts表(联系人基本信息)
contact_id列(练习人id)
data表(联系人的详细信息)
data1列(联系人的信息)
raw_contact_id列(联系人的id,标识该行联系人信息属于哪个联系人)
mimetype_id列(标识该行联系人信息是什么类型)
data1列(联系人的信息)
raw_contact_id列(联系人的id,标识该行联系人信息属于哪个联系人)
mimetype_id列(标识该行联系人信息是什么类型)
mimetypes表
mimetype_id列(对应的是什么类型)
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
代码形式的联系人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();获得外部数据文件
四、获取内外部数据
Environment.getDataDirectory();获得内部数据文件(机身内部)
Environment.getExternalStorageDirectory();获得外部数据文件
file.getTotalSpace//得到此路径的分区的总大小
Formatter.formatFileSize(Context, long);//格式化字节
五、SD卡读写权限
android.permission.READ_EXTERNAL_STORAGE//读外置存储设备
android.permission.WRITE_EXTERNAL_STORAGE//写外部存储设备
android.permission.WRITE_EXTERNAL_STORAGE//写外部存储设备
六、判断SD卡挂载状态
Environment.getExternalStorageState();//获得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 存储媒体没有挂载
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