我听说操作系统4.3具有隐藏功能,可以禁用某些权限,无需重新打包APK。当我们发布应用时,我们添加必要的权限并使应用工作。但该功能可以禁用权限。我知道有些应用程序已经这样做虽然它是一个黑客攻击而且我不需要关心。但是使用OS 4.3,用户可以很容易地做到这一点。
现在我的问题是,当禁用权限时,相应的API会抛出异常吗? (我想是的。)如果这是真的,我应该为一些操作添加try-catch,否则新手用户最终可能会认为我的应用设计很差。
或者,我会添加一些代码来检查权限是否适合我的应用程序工作,如果没有,我会显示一些粗鲁,没有礼貌的消息告诉不要这样做并退出应用程序。
(有人可能会关闭这个问题,说这不是一个真正的问题。)
答案 0 :(得分:5)
我听说操作系统4.3具有隐藏功能,无法重新打包APK。
这个工作期限是“App Ops”,基于允许用户控制这些操作的活动的标题。
现在我的问题是,当禁用权限时,相应的API会抛出异常吗?
这将取决于被阻止的特定操作。例如,尝试open()
一个Camera
,当App Ops阻止时,会抛出RuntimeException
。但查询联系人,当用户在App Ops中阻止该联系时,只返回空结果集。
我应该为一些操作添加try-catch,否则新手用户最终可能会认为我的应用设计很差
也许。这取决于您的应用程序可以阻止什么以及阻止行为是什么。
我会添加一些代码来检查权限是否适合我的应用程序工作,如果没有,我会显示一些粗鲁,没有礼貌的消息告诉不要这样做并退出应用程序。
App Ops不会撤消权限。 PackageManager
和checkPermissions()
仍然会报告您拥有该权限,即使App Ops阻止了与该权限相关的某些操作。
目前,我知道无法确定您是否被App Ops阻止。
我已经开始a FAQ on my blog尝试收集有关此信息,直到官方详细信息出现(如果有的话)为止。