第一行代码学习记录(contentprovider)
作者:互联网
获取权限
危险权限只能动态请求
点击查看代码
if(ContextCompat.checkSelfPermission(this, Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED){
ActivityCompat.requestPermissions(this,new String[]{Manifest.permission.READ_EXTERNAL_STORAGE},1);
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
switch (requestCode) {
case 1:
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
pic = fileManager.getImg();
} else {
Toast.makeText(this, "You denied the permission", Toast.LENGTH_SHORT).show();
}
break;
default:
}
}
内容提供器
一种是使用现有的内容提供器(我们可以在程序里面的获取到的),来读取别的应用的操作和数据,一种是自己创建自己程序的的内容提供器,来分享自己程序的数据和操作。
使用现有的内容提供器
利用content-resolver提供的方法。要获得该类的实体对象,可以通过context的getContentResolver,这个实体对象下面有crud四种方法,查询主要用query获取cusor(有点像光标)以后进行查询。
有5个参数,第一个是uri参数,content:xxx直接调用mediastore这个静态类下面的就可以了,他已经帮我们把uri转化成了这种类型的参数,
占位符是?号
创建自己程序的内容提供器
extends ContentProvider
然后在进行重写方法就行了
最重要的是™要在manifest里面进行注册
标签:第一行,permission,提供,代码,grantResults,权限,requestCode,参数,contentprovider 来源: https://www.cnblogs.com/wwwapril/p/16088029.html