我是靠谱客的博主 整齐时光,最近开发中收集的这篇文章主要介绍通过ContentResolver查询其他程序数据的步骤,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

通过pause()方法解析Uri

首先通过Uri的parse()方法将字符串Uri解析为Uri类型的对象,实例代码如下:

//视频uri
Uri uri= MediaStore.Video.Media.EXTERNAL_CONTENT_URI;

通过query()方法查询数据

通过getContentResolver()方法获取ContentResolver对象,调用该对象的query()方法查询数据

//获取内容提供者
ContentResolver contentResolver = context.getContentResolver();
//需要获取的视频信息
String[] strings={
MediaStore.Video.Media.DISPLAY_NAME,
//视频在文件sdcard的名称
MediaStore.Video.Media.SIZE,
//视频大小
MediaStore.Video.Media.DURATION,
//视频总时长
MediaStore.Video.Media.DATA
//视频路径
};
//查询数据
Cursor cursor=contentResolver.query(uri,strings,null,null,null);

query()方法中的参数具体信息如下:

  • uri:表示查询其他程序的数据需要的uri
  • projection:表示要查询的内容,可为null
  • selection:表示设置查询的条件,可为null
  • selectionArgs:该参数需要配合selection使用,如参数selection中有"?",则传递的参数selectionArgs会替换掉"?",否则值设置为null
  • sortOrder:表示查询的数据按照什么顺序排序,相当于数据库中的order by,可为null

通过while()循环语句便利查询到的数据

通过query()方法查询完数据后,会将该数据存放在cursor对象中,接着通过while()循环语句将cursor对象中的数据遍历出来,最后调用cursor对象的close()方法来关闭cursor释放资源。

//判断是否获取到数据
if (cursor!=null) {
while (cursor.moveToNext()){
String name=cursor.getString(0);
//获取视频名称
long duration=cursor.getLong(1);
//获取视频时长
long size=cursor.getLong(2);
//获取视频大小
String path=cursor.getString(3);
//获取视频路径
video=new Video(name,size,duration,path);
//通过构造器传入
videoList.add(video);
//video对象添加至集合中
}
cursor.close();
}

获取权限


protected void onCreate(Bundle savedInstanceState) {
if (ContextCompat.checkSelfPermission(this, Manifest.permission.READ_CONTACTS) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.READ_CONTACTS}, 1);
} else {
readContacts();
//获取数据方法
}
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
switch (requestCode){
case 1:
if (grantResults.length>0&&grantResults[0]==PackageManager.PERMISSION_GRANTED){
readContacts();
}else {
Toast.makeText(this,"你没有权限",Toast.LENGTH_SHORT).show();
}
break;
}
}

最后

以上就是整齐时光为你收集整理的通过ContentResolver查询其他程序数据的步骤的全部内容,希望文章能够帮你解决通过ContentResolver查询其他程序数据的步骤所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(52)

评论列表共有 0 条评论

立即
投稿
返回
顶部