问题标签 [runtime-permissions]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
6 回答
13901 浏览

android - Espresso - 点击对话框的按钮

我想测试Android 6的权限,但我没有找到使用Espresso点击“允许”按钮的方法。有没有办法做到这一点?

在此处输入图像描述

Espresso 的版本是 2.2.1。

考试:

行为:

我仍然收到带有对话框的冻结屏幕(如屏幕截图所示)。测试一直执行,直到他完成。

输出:

0 投票
1 回答
1110 浏览

android - 运行时权限应用级别或活动级别

在新的 api 版本的 android (API 23) 中,我们现在需要在运行时请求权限。如果请求的权限是应用程序级别或活动,我有一个非常基本的疑问。根据文档,您必须在每次执行需要该权限的操作时检查您是否拥有该权限。那么这是否意味着在应用程序级别授予权限,但建议在活动级别进行检查?此外,建议按以下方式检查权限:

在这里,我们清楚地看到权限的检查是通过传递活动的上下文来完成的。如果给定的权限是在应用程序级别,为什么我们需要活动上下文而不是应用程序上下文?(尽管该方法有可能在内部从活动上下文中获取应用程序上下文。)

0 投票
1 回答
13444 浏览

android - 如何调试/重置 Android 6.0 权限?

在迁移我的一个应用程序以使用 Android 6.0 权限系统时,我发现使用模拟器调试权限非常困难。

发现:

  • requestPermissions()使用该方法时,在应用信息屏幕中禁用权限不会重新显示授予权限对话框。
  • 重新安装应用程序似乎是使应用程序再次显示授予权限对话框的唯一方法。

使用 Android 模拟器调试权限的正确方法是什么?

0 投票
2 回答
1321 浏览

android - 在安装过程中需要危险的权限

从 API 级别 23 开始,android 引入了一种在应用程序运行时授予“危险”权限的新方法。这意味着必须在运行时授予诸如相机访问、电话访问等权限。

我可以完全理解为什么这通常非常有用,并且在安装过程中对用户没有那么吓人。但是,使用许多此类“危险”权限(出于所有正确原因)的应用程序很容易在运行时因如此多的请求而惹恼用户。是否还有办法强制用户在安装过程中授予“危险”权限?

0 投票
1 回答
81 浏览

android - 系统通过无用户操作授予权限

我面临一个奇怪的问题。我遵循教程是为了在运行时为我构建的应用程序请求权限。问题是,即使我检查设备是否使用 Android M 并且我在运行时请求权限,它也不会显示对话框。

编码:

accessWeb服务:

清单:

结果如下:

在此处输入图像描述

并且没有请求许可:

在此处输入图像描述

有什么建议么?

0 投票
3 回答
2263 浏览

java - 当请求位置的运行时权限时

目前,在第一次启动我的应用程序时要求运行时权限时,它会提示用户使用他们的位置。如果您单击“是”,它不会像应有的那样启用位置。

但是,如果我重新启动该应用程序,它会启用该位置。关于我在哪里可以在第一次启动时启用位置的任何建议?代码的第一部分在 OnCreate 中调用。

0 投票
1 回答
3663 浏览

android - targetSdkVersion 23 通过 accountManager.getAccounts() 返回 0 长度数组

我在真正的 Nexus 5 设备 Android 6.0.1 中观察到以下奇怪的结果

我在启动应用程序期间运行以下简单代码。

如果我将 my 设置targetSdkVersion为 22、21、19,上面的代码可以正常工作。它返回非空数组。

但是,当我更改targetSdkVersion和测试时

上面的代码返回0长度数组!

知道为什么在针对targetSdkVersion=23.

请注意,在产生问题期间,每当您更改targetSdkVersion并通过 Android Studio 运行它时,您需要清除您的应用数据,清除您的应用缓存并手动为所有用户卸载。

以下是在 Nexus 5 设备、Android 6.0.1 中重现该问题的步骤

  1. 通过 File -> New -> New Projetct 在 Android Studio 中创建项目...
  2. 选择“空白活动”

AndroidManifest.xml

构建.gradle

MainActivity.java

知道为什么 targetSdkVersion 23 通过 accountManager.getAccounts() 返回 0 长度数组

0 投票
2 回答
9683 浏览

java - File.createNewFile() 方法在 Android M 中引发异常

我在 Android M 中创建文件时遇到问题。

我将Nexus 9Android 6.0.1一起使用。然后我在我的项目中设置如下:

AndroidManifest.xml

构建.gradle

MainActivity.Java

构建成功,应用程序启动,但我收到如下异常消息:

IO异常

我怎么解决这个问题?我没有抓住我想念的东西......

请帮忙。

0 投票
1 回答
1159 浏览

android - 运行时权限:授予后立即无权限

我正在尝试在 Marshmallow 中获得存储许可。一切似乎都很好,我可以授予或拒绝许可。

然而问题就在这里。当我第一次使用这个功能时,hasStoragePermission()总是错误的,即使在授予权限之后也是如此。在我必须使用上下文菜单两次才能执行我想要的操作之前未授予权限时。这是不可接受的。

Android Marshmallow 中是否有任何已知的错误可能导致它?代码似乎没问题,因为实际上我可以授予/拒绝存储权限。不过,我想立即拥有它。

0 投票
2 回答
7630 浏览

android - Android Marshmallow 位置权限处理

我正在研究 Android Marshmallow 运行时权限。我向用户询问位置权限,假设他已允许获取位置并且我已经开始获取位置但现在用户拒绝了应用程序设置的权限。现在应用程序崩溃了。我该如何处理?请帮忙。