我们可以通过快速编程来禁用应用程序级别的权限吗?

Posted

技术标签:

【中文标题】我们可以通过快速编程来禁用应用程序级别的权限吗?【英文标题】:Can we disable App level permissions by programming in swift? 【发布时间】:2021-08-27 11:14:55 【问题描述】:

我需要管理特定于设备的应用级权限。 有4个权限:

    人脸ID登录 相机 存储 位置

我需要开发的是,如果我启用-禁用这些权限的开关,它也应该反映在应用程序设置中。 例如。如果我禁用了相机权限;它应该在设置->隐私->相机->应用程序中显示禁用(禁用) 这可能吗?

目前的发展: 我默认启用了它。并将其存储在 UserDefaults 中。每当用户想要访问该功能时,我都会检查存储在 UserDefault 中的值。如果启用则允许,如果禁用则显示一条消息。 但禁用并不意味着它已从设备设置中禁用。 我希望我已经正确解释了我的问题:/

【问题讨论】:

您不能以编程方式删除您被授予的权限。一旦您拥有权限,您就拥有它,直到用户在设置中将其关闭。 是什么让您认为您的应用不需要用户许可来访问这些功能? 【参考方案1】:

您不能以编程方式删除您已授予的权限。

一旦您拥有权限,您就拥有它,直到用户在设置中将其关闭。

因此,提供一个 UI 来禁用您的应用中的权限是没有意义的。

您可以做的是提供一个用户界面来禁用使用这些权限功能。例如,打开/关闭“使用 FaceId 登录”或“报告我的位置”的开关;如果开关关闭,您的应用可能仍然拥有该权限,但您的应用不会使用它。

【讨论】:

以上是关于我们可以通过快速编程来禁用应用程序级别的权限吗?的主要内容,如果未能解决你的问题,请参考以下文章

可以使用 Shiro 设置 JSF 页面级别权限吗

如何制作不应授予用户删除自身权限的 iphone 应用程序。有啥办法吗?

Java 的 ThreadPoolExecutor 可以在应用程序级别充当负载均衡器吗?

如何在Parse中以编程方式设置类级别权限?

使用 SYSENTER 和 SYSEXIT 指令执行对系统过程的快速调用

以编程方式禁用/启用通知