Откройте параметры устройства BlackBerry программно

Детали приложения:

Я пишу приложение, которое требует, чтобы у пользователя был установлен пароль устройства. Компания раздает устройства Blackberry своим партнерам, которые затем используют их для составления отчетов о продажах и т. Д. Компания хочет убедиться, что пароль устройства установлен таким образом, чтобы никто не мог легко получить доступ к конфиденциальной информации, если они украдут телефон. Приложение не должно работать, если пароль не установлен, что достаточно просто.

Эта проблема:

Компания хочет, чтобы появилось сообщение "Пожалуйста, установите пароль устройства", а затем направьте пользователя к устройству в меню параметров, чтобы показать, где установить пароль для устройства. Делать это кажется хлопотным

Что я уже пробовал:

Я посмотрел в 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");
}

Единственными видимыми приложениями являются такие вещи, как "Телефон", "Сообщения", "Сообщения Blackberry", "Домашний экран" и т. Д., Но приложение опций отсутствует, что заставляет меня поверить, что его здесь нет. (Если я ошибаюсь, пожалуйста, дайте мне знать)

Я также взглянул на 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 и не могу найти ничего, что выглядит правильно. Я искал устройство, параметры и настройки, но ни одно из совпадений не имеет отношения.

Если кто-нибудь знает, что делать, дайте мне знать.

2 ответа

Решение

Итак, получается, что вы можете запускать внутренние приложения, используя ApplicationManagerпоэтому я запустил приложение "Параметры", используя следующий код:

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

Однако это только запускает приложение "Параметры" и не перемещает пользователя в раздел "Безопасность".

Следующая реклама на этой странице помогла мне понять, что на самом деле делает этот метод:

начало

Приложение BlackBerry может быть запущено несколькими способами:

  • системой автоматически при запуске устройства
  • другим приложением
  • системой в запланированное время

Независимо от того, как запущено приложение, диспетчер приложений отвечает за запуск процесса, в котором будет выполняться приложение.

Класс ApplicationManager позволяет приложениям взаимодействовать с диспетчером приложений для выполнения задач, в том числе:

  • запустить приложение немедленно или в назначенное время
  • взаимодействовать с процессами, включая получение идентификаторов для приоритетных приложений
  • размещать глобальные события в системе

Точки входа

Диспетчер приложений запускает приложение, получая новый процесс и порождая поток внутри этого процесса для вызова одной из точек входа приложения. Для многих приложений метод main() его класса приложений является единственной точкой входа, которая вызывается. Но вы можете настроить более одной точки входа для приложения.

Использование нескольких точек входа позволяет пользователю создавать различные способы запуска приложения. Например, если ваше приложение позволяет пользователям создавать новый документ, вы можете предоставить пользователям два значка, по которым они могут щелкнуть, чтобы запустить приложение. Пользователи могут щелкнуть один значок, чтобы открыть приложение на главном экране, а другой значок - открыть приложение на экране, необходимом для создания нового документа.


Резюме

Таким образом, в основном этот метод просто запускает метод main приложения и предоставляет аргументы в метод main. Я подозреваю, что метод main приложения Options не позволяет вам указывать страницу, которую вы хотите открыть, в качестве аргумента в методе main.

Нет никакой документации (насколько я могу судить) о том, какие аргументы использует приложение опций, так что не догадайтесь, как его можно использовать, кажется, что направлять пользователя сюда и давать ему некоторые инструкции о том, как двигаться дальше, - мое единственное вариант

u_u

К сожалению, нет стандартного API для программного вызова этого экрана. Но есть обходной путь. Используйте EventInjector, чтобы ввести последовательность событий клавиатуры, чтобы открыть экран параметров.

Этот способ не изящен, но я думаю, что это единственный обходной путь в этом случае.

ОБНОВИТЬ:

Я бы реализовал следующий подход. При запуске приложения я проверю, защищено ли устройство паролем через DeviceInfo.isPasswordEnabled ().

Если устройство не защищено паролем, я бы отобразил сообщение: Устройство не защищено паролем. Пожалуйста, установите пароль для вашего устройства в настройках устройства. И снова запустите приложение.

Я понимаю, что этот способ не элегантен, но он надежен и предоставляет клиентам полную информацию о том, как правильно использовать это приложение.

Другие вопросы по тегам