代码之家  ›  专栏  ›  技术社区  ›  AtariPete

黑莓权限问题-“提示”在不同设备上的操作方式不同

  •  4
  • AtariPete  · 技术社区  · 15 年前

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

    问题

    1。提示&允许-删除通知?: 在各种设备上安装我的应用程序(已签名)时,有些设备会提示用户建立数据连接,有些则不会(只是建立了连接)。我检查了权限,在这两个设备上,它们的数据连接都设置为提示。为什么一个设备只需要建立连接,而另一个设备需要提示?注:两个设备都在同一个载体上(版本),不受BES限制。

    2。最近生成的预任务对话框: 在最近的构建中,提示用户允许数据请求。在以前的版本中,从未发生过这种情况(即使两个版本都建立了可能需要提示的数据连接)。对于我的生活,我不知道我可能会发生什么变化,导致现在发生的POMPTS。我是否应该签入build/project/files以使这些提示不再出现?

    三。设置安装权限?: 有没有办法在安装应用程序时强制使用权限(比如说允许)?我知道我可以做,但那将发生在运行应用程序时。理想情况下,我希望在没有用户参与的情况下或在安装过程中解决权限问题。

    需要注意的一些事实:

    • 为4.2.1及以上版本开发
    • 应用程序已签名
    • 应用程序利用数据连接和GPS
    3 回复  |  直到 13 年前
        1
  •  0
  •   CJ.    15 年前

    关于你的问题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
    

    下面是我对OS4.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,无法在安装时执行任何类型的代码。你能做的最好的是让你的应用程序在启动时自动运行,然后执行检查。但是,这可能是一个更糟糕的解决方案,因为用户可能会因为在启动时获得权限请求对话框而感到困惑。

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

        2
  •  0
  •   Jeff    15 年前

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

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

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

        3
  •  0
  •   Richard    15 年前

    关于问题3,如果您的程序设置为在启动时自动运行,则它将在安装时运行。这就是应用程序和/或库在安装时如何与系统挂钩。重新启动时需要小心,因为系统始终有可能决定升级需要重新启动,在这种情况下,您的代码将在重新启动过程的后期运行,但在UI可用之前。所以这段代码需要检查权限是否正确。如果没有,则延迟到ui正在运行(如果它不是alread),然后调用以提示更改。