有关权限申请的我就不多做介绍了,这里我们实现一个功能
1,当访问隐私功能时 申请权限
2,用户点击了拒绝,下次再进来的时候弹出友善的对话框
3,用户点击确定,呈现申请权限对话框
4,用户点击了同意申请的对话框,申请权限
5,申请成功了调用相关方法

override fun initData() {
   		//这里我们需要查询手机内的数据,访问内存信息
        handlePermission()
    }
	//动态申请权限
	private fun handlePermission(){
	val permission = Manifest.permission.READ_EXTERNAL_STORAGE //这个是需要申请的权限信息
	val checkPermission = context?.let{ActivityCompat.checkSelfPermission(it,permission)}
	if(checkpermission == PackageManager.PERMISSION_GRANT){
		//执行到这里说明用户已经申请了权限直接加载数据就可以
		loadData()
	}else{
		//执行到这里说明没有权限了
		if(activity?.let{
		ActivityCompat.shouldShowRequestPermissionRationable(it,permission)
		}!!){
		//用户第一次拒绝后,可能没有看懂提示,第二次的时候就会执行到这里以友善的方式提示用户
		alter("我们只会访问音乐文件"){
			yesButton{
			 myRequestPermission()
			 }
			 noButton()
		}.show()
		}else{
			//第一次提示 会以系统默认的弹框提示用户
			myReqyestPermission()
			}
	}
private fun myRequestPermission(){
	val permission = arrayOf(Manifest.permission.READ_EXTERNAL_STORAGE)
	//这是系统的方法
	requestPermission(permission,0)
	}

//接收权限的回调,也就是用户点击了确定后 加载数据
override fun onRequestPermissionResult(requestCode:Int, permission:Array<out String>,grantResult IntArray){
	super.onRequestPermissionResult(requestCode, permission, grantResults)
	if(grantRequest[0]==PackageManager.PERMISSION_GRANT){
		loadData()
	}
}
	


}