问题标签 [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 投票
2 回答
81 浏览

android - Activity 在调用运行时权限时变黑

我想调用运行时权限以在单击某些视图时读取联系人。所以我检查应用程序是否有权限,如果没有请求权限。但是,当请求对话框出现时,如果单击对话框上的允许或拒绝,活动将变黑并完成。当我调试应用程序时,单击允许或拒绝后它不会转到 onRequestPermissionsResult 方法。

如果权限被接受,我也会打电话给联系人 Intent。我想在与选定联系人列表相同的活动中显示这些。因此,为此我有一个列表并将联系人添加到列表 onActivitResult 方法中。

但是为此,如果我从联系人中选择一些联系人,活动就会完成。它不会转到 onActivityResult 方法。

奇怪的是,相同的代码以前可以正常工作。对于旧版本。我也尝试将旧版本的相同活动复制到新版本,但它仍然不起作用。

不明白怎么回事。

有人可以帮忙吗?谢谢..

0 投票
0 回答
208 浏览

android - 即使在 android marshmallow 中请求许可后,检索位置的代码也不会执行

我正在尝试使用库检索用户的当前位置。

该代码在 android M 以下版本中成功获取位置,但是当我在具有 Android Marshmallow 的设备上启动该应用程序时,这段代码甚至没有被执行!

我在 onCreate() 方法中编写了这段代码:

在 android marshmallow 设备上运行该应用程序时,我没有得到这个 toast:Toast.makeText(getBaseContext(), "User's location retrieved using library", Toast.LENGTH_SHORT).show();这意味着这个代码没有被执行!

在编写此代码之前,我已使用以下代码请求许可:

这是onRequestPermissionsResult()的代码:

onRequestPermissionResult()即使在's 的情况下,我也已经编写了位置检索代码PERMISSION_GRANTED,但是什么都没有发生,并且在 android marshmallow 版本中没有检索到任何位置!

请让我知道这里出了什么问题!

0 投票
1 回答
35 浏览

android - 如何在 android 服务中为 android m 设备实现 RunTimePermissions

我如何在 android 服务中为 android m 设备实现 RunTimePermissions,就像我实现录音服务但在我添加时在 android m 设备中崩溃了

在 androidManifest.xml 但是当我再次调试时,我的权限被拒绝错误来了,我该如何在这个服务中实现。虽然我知道在 android 活动中实现这个 RunTimePermissions 很容易,但我如何在服务中实现权限对话框

0 投票
1 回答
43 浏览

android - 即使在所有条件都为真之后,某些代码也不会被执行。请查看详情

我正在开发一个应用程序并使用以下代码来获取用户的当前坐标(来自这个库):

问题是即使在所有条件都为真之后,这段代码有时甚至都不会被执行。请看下面的代码:

运行上面的代码后,由于这段代码的 toast 被显示:Toast.makeText(getBaseContext(), "called from btnRetryGpsEvents() - GPS available", Toast.LENGTH_SHORT).show();这意味着它正在被执行,但是它上面的 toast 即:Toast.makeText(getBaseContext(), "User's location retrieved using library for android M in btnRetryGpsEvents()", Toast.LENGTH_SHORT).show();没有显示,这意味着它没有被执行!

这怎么可能发生?这里怎么了???

请告诉我。

PS:这个问题只在Android M及以上出现。

0 投票
6 回答
774 浏览

java - 我的应用在请求权限时崩溃

嗨,我正在制作一个用于控制需要(WRITE_SETTINGS)权限的设备屏幕的应用程序,我使用了一种方法来请求权限,但应用程序崩溃了。我的应用程序检查版本是否高于 android 5 或更高版本它调用方法来请求权限但它不会工作,有什么帮助吗?

日志猫

0 投票
3 回答
1088 浏览

java - requestPermissions() 什么都不做

问题...

我正在尝试在 Android Marshmallow 中实现运行时权限,同时保持向后兼容性。我以前成功地做到了这一点,我不确定这次有什么不同。我已经在物理 Note 5(运行 Mallow)上对其进行了测试,并使用在 Marshmallow 上设置的模拟器,两者都不起作用。

我意识到“它不起作用”并不是很有帮助,但我不知道还能说什么,什么也没发生。该应用程序不会崩溃,它只是在requestPermissions(perms, 222)被调用后挂起。

我究竟做错了什么?

细节...

我活动的相关部分:

运行时,仅记录这些(onRequestPermissionsResult()根本不调用)

E/HomeActivity:跳过理由

E/HomeActivity:构建版本:23

E/HomeActivity:获取权限

清单包括:<uses-permission android:name="android.permission.CAMERA" />

编辑

仅在我第一次单击该按钮时,它才会显示在 Logcat 中,并且似乎是由调用触发的shouldShowRequestPermissionRationale()

编辑 2

我从它所在的 Activity 中复制了相同的原始代码并将其移至启动 Activity,它在那里工作正常。它现在可以留在那里,但如果有人知道发生了什么,输入仍然很感激。

0 投票
1 回答
6587 浏览

android - Android ID 作为设备 ID 的替代品

我的应用程序一直使用 DeviceId 作为唯一标识符,当然,这需要 READ_PHONE_STATE 作为权限。这在过去没问题,但现在我已经迁移到 Marshmellow 23,在其中请求此权限会在运行时显示一个非常可怕的对话框,说......

“允许{我的应用}拨打和管理电话吗?”

对于只想获取 deviceId 的应用程序来说,这是一个非常可怕的消息。

我正在考虑切换到 Android ID,因为它不需要任何许可。

谷歌搜索我发现使用 android ID 存在一些问题,但都是旧东西。早在 Froyo 时代,就有一家手机供应商为他们的所有手机制作了相同的 ID,但这就是我所看到的。

有人知道使用 Android ID 有什么问题吗?谢谢,院长

0 投票
1 回答
568 浏览

android - 未使用的屏幕覆盖检测到权限对话框

我正在开发一个应用程序,允许用户使用 google vision api 连接到特定的 wifi 网络以扫描包含 ssid 的 QR 码。要扫描 wifi 网络,我需要请求用户授予位置权限。如果我转到设置并手动启用位置权限,这一切都很好,但是在运行时请求权限时,用户点击启用然后弹出第二个对话框,Screen Overlay Detected这需要上下文切换来启用Screen Overlay权限。我没有在其他应用程序上绘图,当我手动启用位置权限时没有问题。那么为什么会弹出这个权限对话框呢?

由于我不确定 Android 为什么要求此权限,因此我不确定要发布什么代码。我已包含更改网络请求的 3 个所需权限的请求。

更新

事实证明,它不仅仅是位置许可。任何权限请求都经历相同的行为。

0 投票
2 回答
1498 浏览

android - 如何避免为请求权限编写重复的样板代码?

我正在更新我的应用程序以兼容 Android 6。权限模型在理论上不是很复杂,但现在我正在实施它,我发现自己在每一个需要权限的活动中都编写了相同的丑陋样板代码。

对于我需要的每一个权限,都有一个

然后在onRequestPermissionsResult我必须检查/过滤每个请求的结果并将其转换为我的活动可以理解的内容。

我现在正在更新我的第二个活动,权限代码与第一个活动非常相似,几乎看起来像是复制粘贴的。行很长,代码相似,而且看起来很丑。

我不想使用第三方解决方案,我已经尝试了一些,但我更愿意完全控制代码。例如,一些库不支持我在项目中使用的 Java 8。

我可以做些什么来避免在我的所有活动中出现一堆重复的代码?

0 投票
0 回答
556 浏览

java - Android 运行时权限 GPS:尝试调用虚拟方法 'android.content.pm.PackageManager android.content.Context.getPackageManager()'

我正在开发一个基于cordova的Android项目,我有一个使用GPS位置的类,我想实现新的权限运行时。

我遵循了 GitHub 的官方文档和 google 项目,但出现以下错误:

java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法“android.content.pm.PackageManager android.content.Context.getPackageManager()”

在这一行:

if (ActivityCompat.shouldShowRequestPermissionRationale(GpsTrackingActivity.this,Manifest.permission.ACCESS_FINE_LOCATION))

这是代码:

我做错了什么?