Blackberry权限问题 - “提示”在不同设备上的行为方式不同

时间:2009-07-01 18:37:29

标签: blackberry permissions code-signing prompt

我有一些关于权限和提示的问题。最重要的是,这与建立数据连接和使用GPS

有关

问题

1。提示&允许 - 删除通知?:在各种设备上安装我的应用程序(已签名)时,某些设备会提示用户进行数据连接,而有些设备则不提示(仅建立连接)。我检查权限,并在两台设备上将数据连接设置为提示。为什么一个设备只是连接而另一个需要提示?注意:两个设备都在同一个运营商(verision)上,并且不受BES限制。

2。最近构建中的预置对话框:在最近的构建中,用户被要求允许数据请求。在以前的版本中,此pompt永远不会发生(即使两个构建都建立了可能需要提示的数据连接)。对于我的生活,我无法分辨我可能会有什么变化导致现在出现的噗噗声。有什么我应该在构建/项目/文件中检查,以便这些提示不再出现?

第3。在安装时设置权限?:在安装应用程序时是否有任何方法可以强制执行权限(例如允许)?我知道我可以执行invokePermissionsRequest,但这会在运行应用程序时发生。理想情况下,我希望在没有用户参与或安装过程中获得权限。

需要注意的一些事实:

  • 开发4.2.1及以上
  • 应用已签名
  • 应用程序使用数据连接和GPS

3 个答案:

答案 0 :(得分:0)

与您的问题#1和#2有关...根据设备使用的操作系统,行为可能会有所不同。 OS 4.7发布时,修改/重命名/创建了许多权限。例如,以下是我为OS 4.5请求的权限:

ApplicationPermissions.PERMISSION_FILE_API
ApplicationPermissions.PERMISSION_INTER_PROCESS_COMMUNUCATION
ApplicationPermissions.PERMISSION_CHANGE_DEVICE_SETTINGS
ApplicationPermissions.PERMISSION_EXTERNAL_CONNECTIONS
ApplicationPermissions.PERMISSION_INTERNAL_CONNECTIONS
ApplicationPermissions.PERMISSION_WIFI
ApplicationPermissions.PERMISSION_EMAIL
ApplicationPermissions.PERMISSION_HANDHELD_KEYSTORE

以下是我为OS 4.7请求的权限:

ApplicationPermissions.PERMISSION_FILE_API
ApplicationPermissions.PERMISSION_CROSS_APPLICATION_COMMUNICATION
ApplicationPermissions.PERMISSION_DEVICE_SETTINGS
ApplicationPermissions.PERMISSION_INTERNET
ApplicationPermissions.PERMISSION_SERVER_NETWORK
ApplicationPermissions.PERMISSION_WIFI
ApplicationPermissions.PERMISSION_EMAIL
ApplicationPermissions.PERMISSION_SECURITY_DATA,     

您可以看到重命名了许多权限。您可能需要更新代码以了解操作系统并请求特定权限。

对于问题#3,无法在安装时执行任何类型的代码。您可以做的最好的事情是使您的应用程序“在启动时自动运行”并执行检查。但是,这可能是一个更糟糕的解决方案,因为用户可能会在启动时获得权限请求对话框而感到困惑。

最佳解决方案是确保每次启动应用程序时都拥有足够的权限。如果没有,请求所有必要的权限并尽可能优雅地处理所有事务。如果您成功执行此操作,您的用户只需在您的应用程序首次启动时处理权限(只要他们以后不会自行处理它们)。

答案 1 :(得分:0)

问题#1。检查您是否启用了防火墙。选项 - >安全选项 - >防火墙。如果启用,则在尝试访问GPS时会提示您,如果未启用,则不会提示您。

问题#2。这可能与您之前版本的应用程序的状态有关。如果您在现有应用程序的顶部进行安装,黑莓将“记住”它已经问过您的提示以及您的回答是什么。另一方面,如果你在安装之前卸载,黑莓将会“忘记”。

问题#3。无法在安装时运行自定义代码。

答案 2 :(得分:0)

关于问题#3,如果你的程序设置为在启动时自动运行,它将在安装时运行。这是应用程序和/或库在安装时绑定到系统挂钩的方式。您需要在重新启动时小心,因为系统总是可能决定升级需要重新启动,在这种情况下,您的代码将在重新启动过程中运行,但在UI可用之前。因此,此代码需要检查权限是否正确。如果没有,则延迟到UI运行(如果它没有被读取),然后进行调用以提示更改。

相关问题