1

应用详情:

我正在编写一个要求用户设置设备密码的应用程序。该公司将黑莓设备分发给其员工,然后他们将使用这些设备报告销售等情况。该公司希望确保设置了设备密码,以便任何人在窃取手机时都无法轻易访问机密信息。如果未设置密码,该应用程序必须无法运行,这很容易。

问题:

该公司希望出现一条消息说“请设置设备密码”,然后将用户引导至设备的选项菜单,以向他们显示设置设备密码的位置。这样做似乎很麻烦

到目前为止我已经尝试过:

我已经查看了该ApplicationManager对象,它允许您将应用程序带到前台。但是,当我使用以下代码查看可用的应用程序时:

ApplicationManager manager = ApplicationManager.getApplicationManager();
ApplicationDescriptor descriptors[] = manager.getVisibleApplications();
for(int i=0;i<descriptors.length;i++)
{
    String applicationName= descriptors[i].getName();
    System.out.println("applicationName");
}

唯一可见的应用程序是电话、消息、黑莓消息、主屏幕等,但选项应用程序不存在,这让我相信它无法从这里访问。(如果我错了请告诉我)

我还查看了该Invoke.invokeApplication(appType, args)方法,但是 API 没有用于选项或设置等的 appType 常量。API 仅指定以下类型,我找不到我需要的类型:

  • APP_TYPE_ADDRESSBOOK

  • APP_TYPE_BLUETOOTH_CONFIG

  • APP_TYPE_CALCULATOR

  • APP_TYPE_CALENDAR

  • APP_TYPE_CAMERA

  • APP_TYPE_MAPS

  • APP_TYPE_MEMOPAD

  • APP_TYPE_MESSAGES

  • APP_TYPE_PHONE

  • APP_TYPE_SEARCH

  • APP_TYPE_TASKS

我已经扫描了 API 文档,但找不到任何看起来正确的东西。我已经搜索了设备和选项和设置,但没有一个命中是相关的。

如果有人知道该怎么做,请告诉我。

4

2 回答 2

1

不幸的是,没有标准的 API 可以以编程方式调用此屏幕。但是有一个解决方法。使用EventInjector注入一系列键盘事件以打开选项屏幕。

这种方式不是一种优雅的方式,但我认为这是这种情况下唯一的解决方法。

更新:

我将实施以下方法。在应用程序启动时,我会检查设备是否通过DeviceInfo.isPasswordEnabled()受到密码保护。

如果设备不受密码保护,我会显示消息:设备不受密码保护。请在设备选项中为您的设备设置密码。并再次启动应用程序。

我理解,这种方式并不优雅,但它是可靠的,并向客户提供了如何正确使用此应用程序的完整信息。

于 2013-10-10T05:29:01.177 回答
1

好的,事实证明您可以使用 运行内部应用程序ApplicationManager,因此我使用以下代码启动了 Options 应用程序:

  ApplicationManager.getApplicationManager().launch("net_rim_bb_options_app");

但是,这只会启动选项应用程序,不会将用户导航到安全部分。

此页面中的以下内容帮助我了解了此方法的真正作用:

开始

BlackBerry 应用程序可以通过多种方式启动:

  • 由系统在设备启动时自动启动
  • 通过另一个应用程序
  • 由系统在预定时间

无论应用程序如何启动,应用程序管理器都负责启动应用程序将在其中运行的进程。

ApplicationManager 类使应用程序能够与 Application Manager 交互以执行任务,包括:

  • 立即或在预定时间运行应用程序
  • 与进程交互,包括检索前台应用程序的 ID
  • 将全局事件发布到系统

入口点

应用程序管理器通过获取一个新进程并在该进程中生成一个线程来调用应用程序的入口点之一来启动应用程序。对于许多应用程序,其应用程序类的 main() 方法是被调用的单个入口点。但是您可以为一个应用程序配置多个入口点。

使用多个入口点可以让您为用户创建不同的方式来启动应用程序。例如,如果您的应用程序允许用户创建新文档,您可能希望为用户提供两个图标,他们可以单击它们来启动应用程序。用户可以单击一个图标将应用程序打开到其主屏幕,然后单击另一个图标将应用程序打开到创建新文档所需的屏幕。


概括

所以基本上这个方法只是运行应用程序的 main 方法,并在 main 方法中提供参数。我怀疑 Options 应用程序的 main 方法不允许您提供要打开的页面作为 main 方法中的参数。

没有关于选项应用程序需要哪些参数的文档(据我所知),所以没有猜测如何使用它,似乎将用户引导到这里并给他们一些关于如何进一步导航的说明是我唯一的选项

u_u

于 2013-10-24T16:11:33.457 回答