【发布时间】:2017-06-23 14:52:32
【问题描述】:
我的应用需要访问存储 - 只是为了读取一些 OBB 数据 - 由于我们正在处理的数据的大小。根据定义,这被 android 归类为“危险”权限,这是正确的,因此从 Android 6.0 开始,我们需要在应用启动时请求它,然后才能执行任何操作。
问题在于,当应用从根本上要求它在主菜单之外执行任何操作时,用户可以拒绝我们的许可。
当用户拒绝在运行时授予“危险”权限时,如果没有它,应用程序实际上毫无功能,那么正确的处理方法是什么?
编辑:澄清 我知道我需要执行此操作的代码以及所涉及的回调。代码示例不是必需的。我需要知道如果不断拒绝会削弱我的应用程序的用处,我应该怎么做。错误然后杀死应用程序?当用户尝试做任何事情时显示带有消息的主菜单? 值得注意的是,这是一个原生应用程序,因此 C++ 正在回调 java 来执行此操作。
【问题讨论】:
-
只显示一个对话框,解释为什么您的应用需要此权限,并说没有它您将无法使用该应用,然后不要让他们在没有它的情况下通过主菜单
-
向你的用户解释你为什么需要这个权限,如果他仍然拒绝然后退出你的应用程序,这里有一些解决方案stackoverflow.com/questions/41999564/…
-
你能详细说明为什么你需要这个权限吗?通常,您可以将 OBB 文件放在您的 external file directory 中而无需额外权限,这就是 Google Play 处理应用扩展的方式。
-
@AlexCohn extract from this link under the header "Storage Location", developer.android.com/google/play/expansion-files.html :但是,在 Android 6.0(API 级别 23)的某些实现中,您可能需要在应用清单并在运行时请求许可
-
@AlexCohn 最初我们并没有请求许可,也无法读取某些设备的文件。我们最初的解决方案是在所有设备上请求许可,但我们将对其进行修复,看看我们是否可以避免在没有这种实现的设备上这样做。因此,当我们完成该任务时,我会通知您,并让您知道我们如何处理它 - 但它可能会采用以下形式:尝试,如果(错误){请求许可,再次尝试}
标签: android permissions android-ndk