繁体   English   中英

如何从对话框片段内的按钮请求 onClick 事件中的权限

[英]How to ask for permissions in an onClick event from a button inside a dialog fragment

一旦我的应用程序第一次打开,就会出现一个对话框片段(在MainActivity中),解释为什么需要一些权限,最后有一个接受按钮。 我已经为此按钮设置了一个 onClick 侦听器,我想在其中显示默认弹出窗口以请求权限。 为此,我需要ActivityCompat.requestPermission() function,它需要应该在其中打开的活动。我尝试了几种方法,例如MainActivity()this@MainActivitythis@WelcomeDialogFragment等,但这些都没有工作了。

有没有办法做到这一点? (按下按钮后,对话框立即关闭。)这是我的 WelcomeDialogFragment class:

class WelcomeDialogFragment : DialogFragment() {
    override fun onCreateView(
        inflater: LayoutInflater,
        container: ViewGroup?,
        savedInstanceState: Bundle?
    ): View? {
        val rootView : View = inflater.inflate(R.layout.welcome_popup, container, false)

        rootView.accept_btn.setOnClickListener {
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
                ActivityCompat.requestPermissions(
                    this@MainActivity, arrayOf(
                        Manifest.permission.ACCESS_BACKGROUND_LOCATION
                    ), PackageManager.PERMISSION_GRANTED)
            }
            ActivityCompat.requestPermissions(
                this@MainActivity, arrayOf(
                    Manifest.permission.SEND_SMS, Manifest.permission.READ_CONTACTS
                ), PackageManager.PERMISSION_GRANTED)
            dismiss()
        }

        return rootView
    }
}

谢谢。

您可以使用getActivity()requireActivity() ,如:

ActivityCompat.requestPermissions(requireActivity(), list_of_permissions)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM