获取权限

危险权限只能动态请求

点击查看代码
	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:
        }
    }
结果的函数只需要3个参数,分别是我们发起请求的时候写的请求代码,申请的权限,已经同意的权限。

内容提供器

一种是使用现有的内容提供器(我们可以在程序里面的获取到的),来读取别的应用的操作和数据,一种是自己创建自己程序的的内容提供器,来分享自己程序的数据和操作。

使用现有的内容提供器

利用content-resolver提供的方法。要获得该类的实体对象,可以通过context的getContentResolver,这个实体对象下面有crud四种方法,查询主要用query获取cusor(有点像光标)以后进行查询。

image
有5个参数,第一个是uri参数,content:xxx直接调用mediastore这个静态类下面的就可以了,他已经帮我们把uri转化成了这种类型的参数,image
占位符是?号

创建自己程序的内容提供器

extends ContentProvider然后在进行重写方法就行了
最重要的是™要在manifest里面进行注册
image