MVP中的硬件资源

问题描述

我正在开发一个需要使用设备麦克风的应用程序。我正在使用MVP模式。 我应该在哪里放置与用户(内部演示者或模型)访问麦克风的权限相关的函数

根据请求权限结果,我需要对UI进行一些更改

请帮助

下面是请求许可的功能

... //请求权限

私人娱乐requestPermission( PermissionType:字符串, requestCode:Int

  {
    val permission = ContextCompat.checkSelfPermission(
        context as Activity,permissionType
    )

    if (permission != PackageManager.PERMISSION_GRANTED) {
        ActivityCompat.requestPermissions(
            context as Activity,arrayOf(permissionType),requestCode
        )
    }
    Log.i(TAG,"requestPermission: $permission")
}


//Callback for the result from requesting permissions
override fun onRequestPermissionsResult(
    requestCode: Int,permissions: Array<String>,grantResults: IntArray
) {
    when (requestCode) {
        RECORD_REQUEST_CODE -> {

            if (grantResults.isEmpty() || grantResults[0]
                != PackageManager.PERMISSION_GRANTED
            ) {

                // view?.disableStartButton() /*need to make changes to UI */
                Toast.makeText(
                    context,"Record permission required",Toast.LENGTH_LONG
                ).show()
            } else {
                requestPermission(
                    Manifest.permission.WRITE_EXTERNAL_STORAGE,STORAGE_REQUEST_CODE
                )
            }
            return
        }
        STORAGE_REQUEST_CODE -> {

            if (grantResults.isEmpty() || grantResults[0]
                != PackageManager.PERMISSION_GRANTED
            ) {
               // view?.disableStartButton() /*need to make changes to UI */
                Toast.makeText(
                    context,"External Storage permission required",Toast.LENGTH_LONG
                ).show()
            }
            return
        }
    }
} 

...

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)