Отображать уведомления в MirrorLink
Я планирую разработать приложение, которое будет отправлять уведомления на головное устройство автомобиля с помощью MirrorLink.
Я установил MirrorLink Test Application, и он отображает действие для генерации уведомлений. Но он не может отправить уведомление в головное устройство. (Отображает сообщение об ошибке). Я просмотрел их документы для разработчиков и все еще не мог найти какой-либо подходящий метод для реализации функции уведомлений.
Я очень рад, если кто-то может показать простой пример показа уведомлений с помощью MirrorLink или объяснение того, как уведомления работают в MirrorLink. Спасибо
1 ответ
Поддержка уведомлений на устройствах MirrorLink является необязательной, поэтому возможно, что головное устройство или телефон не поддерживают уведомления, предоставляемые головным устройством. Симулятор клиента MirrorLink делает, телефон, который вы используете, может не.
Вы можете проверить, поддерживает ли телефон уведомления, используя getEventMappingManager (в ICommonAPIService.aidl). Если он возвращает ноль, это не поддерживается. Или логическое getNotificationEnabled() в INotificationManager.aidl.
По сути, уведомления работают довольно стандартным образом: вы вызываете уведомление с приглашением, заголовком, значком и списком действий (в виде пакета). Возвращается с индексом выбранного действия.
Код тестового приложения Common API (предоставленный на сайте разработчика MirrorLink) показывает пример вызова уведомления: List actionList = Arrays.asList(actionListText.getValue(). Split(",")); Uri iconUrl = Uri.parse(iconUrlListText.getValue());
List<Bundle> actions = new ArrayList<Bundle>();
for (int i=0;i<actionList.size();i++)
{
Bundle action = new Bundle();
action.putInt(Defs.Action.ACTION_ID, i+1);
action.putString(Defs.Action.ACTION_NAME, actionList.get(i));
action.putBoolean(Defs.Action.LAUNCH_APP, false);
actions.add(action);
}
int response = notificationManager.sendClientNotification(notificationTitle.getValue(), notificationBody.getValue(), iconUrl, actions);
if (response == 0)
{
Toast.makeText(getBaseContext(), "Sending notification failed." , Toast.LENGTH_LONG).show();
}
Не могли бы вы привести пример того, что вы делаете?
Примечание. В целом нельзя полагаться на то, что система уведомлений будет доступна в большинстве сеансов. Поэтому, если это критично для работы, вам понадобится решение для резервного копирования, использующее встроенные уведомления в Android.