1

我们开发了一个应用程序,它在 OS 6 及更高版本上使用 Blackberry BarcodeScanner 类解码 QR 码。当调用条形码扫描仪屏幕时,操作系统会发出摄像头许可警报,并且应用程序会被遮挡,即它进入后台。在这一点上,如果用户单击红色呼叫结束按钮,应用程序将隐藏(它保持在后台并且不会终止)并且警报保持打开状态。在接受 ALLOW 或 DENY 并重新打开应用程序时,手机会挂起,需要通过从设备中取出电池来重新启动。

我想要做的是当用户在这种情况下单击红色呼叫结束按钮时,我可以完全终止应用程序。由于操作系统权限警报独立于应用程序,因此当用户调用应用程序时,它将具有该权限。

请告诉我如何从那时起终止应用程序,以帮助我。

4

1 回答 1

3

不确定应用程序为何挂起,但最好的解决方案是您应该在启动时使用ApplicationPermissionManager测试您需要的权限。如果您没有对应用程序功能至关重要的权限(相机对条形码扫描至关重要),那么您应该通过 API 请求权限,该 API 允许您提供需要权限的原因。这应该在您请求访问受控资源之前发生。如果用户未授予关键权限,您可以显示一条消息并干净地退出。

为了完整起见,如果资源对应用程序功能不重要,则应用程序应在首次启动时请求一次权限,如果未授予权限,则禁用需要该权限的功能。

在需要资源时使用默认权限请求会使大多数用户感到困惑,并且与更现代的系统(BB10、iOS、Android)中使用的权限授予方法不匹配,而在首次启动时询问您需要的所有权限提供了更好的用户体验,更容易在代码中处理。

于 2013-02-16T03:41:38.583 回答