5

我听说 OS 4.3 有隐藏功能来禁用某些权限而无需重新打包 APK。当我们发布应用程序时,我们会添加必要的权限并使应用程序工作。但是该功能可以禁用权限。我知道有些应用程序一直在这样做,尽管它是一个 hack,我不需要关心。但是使用 OS 4.3,用户可以轻松做到这一点。

现在我的问题是,当权限被禁用时,相应的API会抛出异常吗?(我想是的。)如果这是真的,我应该为某些操作添加 try-catch,否则新手用户可能最终会认为我的应用程序设计不佳。

或者,我将添加一些代码来检查我的应用程序是否有权限运行,如果没有,我会显示一些粗鲁的、没有礼貌的信息来告诉不要这样做并退出应用程序。

(有人可能会结束这个问题,说这不是一个真实的问题。)

4

1 回答 1

5

我听说 OS 4.3 有隐藏功能来禁用某些权限而无需重新打包 APK。

其工作术语是“App Ops”,基于允许用户控制这些操作的活动的标题。

现在我的问题是,当权限被禁用时,相应的API会抛出异常吗?

这将取决于被阻止的特定操作。例如,尝试open()a Camera,当它被 App Ops 阻止时,将抛出一个RuntimeException. 但是,当用户在 App Ops 中阻止联系人时,查询联系人只会返回空结果集。

我应该为某些操作添加 try-catch 否则新手用户可能最终会认为我的应用程序设计不佳

也许。这取决于您的应用程序可以阻止什么以及阻止行为是什么。

我将添加一些代码来检查我的应用程序是否有权限运行,如果没有,我会表现出一些粗鲁的、没有礼貌的信息来告诉不要这样做并退出应用程序。

App Ops 不会撤销权限。PackageManager并且checkPermissions()仍然会报告您持有该权限,即使 App Ops 阻止了与该权限相关的某些操作。

目前,我知道没有直接的方法可以确定您是否已被 App Ops 阻止。

我已经在我的博客上开始了一个常见问题解答,以尝试收集有关此的信息,直到出现官方详细信息(如果有的话)。

于 2013-07-26T19:11:31.743 回答