【发布时间】:2019-09-04 11:32:20
【问题描述】:
我正在使用 MVVM 清洁架构,需要使用融合位置提供程序获取当前位置,因此在获取当前位置之前,我需要检查用户是否已授予访问该位置和互联网的权限。
我通过实现数据源从存储库中检索位置,但我不确定我应该在哪里请求许可。在存储库中,当我请求位置或活动时,首先请求许可,然后请求位置?
在第一种情况下,流程是:1)User clicks the button(view)2)Viewmodel requests for location (viewmodel->usecase->repository)3)Repository checks permissions and requests location4)Observable is returned which emits location(s) or error if no permission were granted (or other error)
第二种情况:1)User clicks the button and permission are checked/requested inside activity2)If permission are granted, viewmodel requests position otherwise view shows an error3)Repository requests and returns the location
第一种方法对我来说看起来更直接和合乎逻辑。表示层只是请求位置,然后存储库返回位置或错误,但是可能是数据层内部的逻辑太多?
【问题讨论】:
-
我也遇到了同样的问题,你是怎么解决的?
-
旧帖,但我也想知道您是如何解决这个问题的?..
标签: android mvvm android-permissions android-mvvm