gpt4 book ai didi

android - 如何检查 ViewModel 中授予的权限?

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:41:25 25 4
gpt4 key购买 nike

我需要为联系人请求权限,当应用程序启动时,我会询问,在 ViewModel 部分,我需要调用需要权限的方法。我需要检查用户是否授予权限然后调用,但是为了检查权限我需要访问 Activity。而在我的 ViewModel 中,我没有对 Activity 的引用,也不想遇到这个问题,我该如何克服?

最佳答案

我刚遇到这个问题,我决定改用 LiveData

核心概念:

  • ViewModel 有一个关于需要做出什么权限请求的 LiveData

  • ViewModel 有一个方法(本质上是回调),如果权限被授予则返回

SomeViewModel.kt:

class SomeViewModel : ViewModel() {
val permissionRequest = MutableLiveData<String>()

fun onPermissionResult(permission: String, granted: Boolean) {
TODO("whatever you need to do")
}
}

FragmentOrActivity.kt

class FragmentOrActivity : FragmentOrActivity() {
private viewModel: SomeViewModel by lazy {
ViewModelProviders.of(this).get(SomeViewModel::class.java)
}

override fun onCreate(savedInstanceState: Bundle?) {
......
viewModel.permissionRequest.observe(this, Observer { permission ->
TODO("ask for permission, and then call viewModel.onPermissionResult aftwewards")
})
......
}
}

关于android - 如何检查 ViewModel 中授予的权限?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44550851/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com