ОС Android Wear: Как программно отобразить панель уведомлений на SmartWatch? - PullRequest
0 голосов
/ 29 июня 2019

Мне очень надоели жесты левой и правой сенсорной панели Wear OS для вещей, которые мне не нужны / не нужны (например, Google Fit и Google Now), поэтому я в итоге сделал собственный циферблат (на основе CanvasWatchFaceService Engine) и добавилGestureListener в оверлейной операции для перехвата событий.Все это было сделано успешно, однако непреднамеренный побочный эффект заключался в том, что он потреблял не только левый и правый жесты, но также вверх и вниз.Обычно это не проблема, но я не могу провести пальцем, чтобы получать входящие уведомления на умных часах.

После различных (неудачных) попыток передачи события Motionevent из Activity в систему я решил, что самым простым решением будет найти способ программно открыть панель уведомлений.Возможно, View был бы более элегантным способом выполнения задач, но у меня все работает так, как я хочу, на моем пользовательском циферблате, за исключением невозможности открыть панель уведомлений.

Так же, как и любойзнаете способ программно подтянуть панель уведомлений?Я надеялся, что будет намерение, которое может быть запущено, но до сих пор все мои исследования показали, как это сделать на обычных устройствах Android, но не работают на Wear OS.Также было много информации о том, как закрыть панель состояния / уведомлений, но это не помогло в моем сценарии.

Моя последняя попытка заключалась в следующем, взятом из SOF из здесь :

Object sbservice = getSystemService( "statusbar" );
Class<?> statusbarManager = Class.forName( "android.app.StatusBarManager" );
Method showsb;
if (Build.VERSION.SDK_INT >= 17) {
showsb = statusbarManager.getMethod("expandNotificationsPanel");
}
else {
showsb = statusbarManager.getMethod("expand");
}
showsb.invoke( sbservice );

Просто для удовольствия я попробовал его на телефоне Android, и он работал успешно, однако при попытке его на устройстве Wear OS он ничего не делал (никаких ошибок в logcat).Я почти уверен, что Wear OS по-разному работает со строкой состояния (по крайней мере, с разными именами пакетов).

...