我听说OS 4.3有隐藏功能,可以在不重新打包APK的情况下禁用一些权限。当我们发布应用程序时,我们会添加必要的权限并使应用程序正常工作。但该功能可以禁用权限。我知道有些应用程序一直在这么做,尽管这是一个黑客攻击,我不需要在乎。但有了OS4.3,用户可以轻松地做到这一点。
现在我的问题是,当权限被禁用时,相应的API是否抛出异常?(我想是的。)如果这是真的,我应该在一些操作中添加try-catch,否则新手用户可能会认为我的应用程序设计不好。
或者,我会添加一些代码来检查是否有权限让我的应用程序工作,如果没有,我会显示一些粗鲁、不礼貌的信息,告诉你不要这样做,退出应用程序。
(有人可能会结束这个问题,说这不是一个真实的问题。)
我听说OS 4.3有隐藏功能,可以禁用一些权限,而无需重新打包APK。
这方面的工作术语是"应用程序操作",基于允许用户控制这些操作的活动的标题。
现在我的问题是,当权限被禁用时,相应的API是否抛出异常?
这将取决于被阻止的特定操作。例如,尝试open()
一个Camera
,当它被App Ops阻止时,将抛出一个RuntimeException
。但是,当用户在App Ops中阻止查询联系人时,只会返回空的结果集。
我应该为一些操作添加try-catch,否则新手用户可能会认为我的应用程序设计不好
也许吧。这取决于你的应用程序做了什么可以被阻止,以及阻止行为是什么
我会添加一些代码来检查是否有权限让我的应用程序工作,如果没有,我会显示一些粗鲁、不礼貌的信息,告诉你不要这样做,退出应用程序。
App Ops不会吊销权限。PackageManager
和checkPermissions()
仍然会报告您拥有该权限,即使App Ops阻止了与该权限相关的某些操作。
目前,我不知道有没有直接的方法来确定你是否被App Ops屏蔽了。
我在我的博客上开始了一个常见问题解答,试图收集有关这方面的信息,直到官方细节出现(如果有的话)。