Можно ли прокручивать страницу уведомлений Android Wear?

У нас есть приложение для SMS для Android Wear (https://play.google.com/store/apps/details?id=com.awear.coffee)

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

Я пробовал два подхода.

Создайте большую страницу уведомлений с содержанием

Это не работает, потому что Notification.WearableExtender.setCustomContentHeight имеет скрытое максимальное значение, поэтому содержимое обрезается. Я думаю, что это такая же высота, как если бы вы использовали setCustomSizePreset (SIZE_LARGE). Я проверил, что если я использую уведомление по умолчанию с большим количеством текста, оно может быть больше этого, но если вы используете настраиваемое намерение отображения, оно будет обрезано.

Используйте полноэкранную страницу уведомлений и добавьте на нее прокрутку

Это не работает, потому что вход каким-то образом блокируется. Всякий раз, когда вы прокручиваете действие, получает Action.DOWN, Action.MOVE, Action.CANCEL в указанном порядке, поэтому вы получаете только один Action.MOVE независимо от того, как долго вы перетаскиваете. Я предполагаю, что это потому, что ОС хочет управлять свайпами влево / вправо.

Есть идеи, как это обойти? Я пробовал настраивать пользовательские прослушиватели onTouch, но они по-прежнему никогда не получают все события касания.

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

Якоб


person Jakob    schedule 29.01.2015    source источник
comment
Вы можете попробовать использовать следующую пользовательскую карту: developer.android.com/training/ wearables / ui / cards.html с расширением карты   -  person Tony Malghem    schedule 29.01.2015


Ответы (2)


если вы используете мостовое уведомление (без модуля износа). Вы можете вставить расширенный текстовый контент в ваше уведомление, добавив к вашему уведомлению один из стилей «большого представления» (InboxStyle, BigTextStyle). На портативном устройстве пользователи могут видеть крупный контент, развернув уведомление. На носимых устройствах контент в большом просмотре отображается по умолчанию.

BigTextStyle bigStyle = new NotificationCompat.BigTextStyle();
bigStyle.bigText(someBigText);

NotificationCompat.Builder notificationBuilder =
    new NotificationCompat.Builder(this)
    .setSmallIcon(R.drawable.ic_small)
    .setContentTitle(title)
    .setContentText(contentText)
    .setContentIntent(viewPendingIntent)
    .addAction(R.drawable.ic_map,
            getString(R.string.somestring), mapPendingIntent)
    .setStyle(bigStyle);
person Anees    schedule 03.02.2015

Я столкнулся с теми же проблемами.

Ограничение на setCustomContentHeight разочаровывает. Я не мог найти способ обойти это.

Точно так же, похоже, нет хорошего способа обойти ограничения, налагаемые на прослушивателей касаний с полноэкранным уведомлением.

Мое решение заключалось в том, чтобы добавить действие на первую страницу уведомления, которое запускает Activity на основе GridViewPager. Оказавшись там, ограничения исчезнут, но это все еще в основном выглядит как уведомление. Основные отличия заключаются в том, что (1) вы должны «нажать» на первую карточку уведомления, а не проводить по ней, и (2) пролистывание вверх и вниз не приводит к автоматическому переходу к следующему / предыдущему уведомлению.

person JCooper    schedule 04.03.2015