Событие нажатия физической кнопки MAUI Wear O не срабатывает?C#

Место общения программистов C#
Anonymous
Событие нажатия физической кнопки MAUI Wear O не срабатывает?

Сообщение Anonymous »

Я работаю над приложением MAUI 10, в котором мне хотелось бы прослушивать событие физической кнопки, как описано здесь:

https://developer.android.com/training/ ... al-buttons
Моя проблема в том, что каждый раз, когда я нажимаю физическую кнопку, на моих Pixel Watch по умолчанию появляются «Недавние приложения».
Я уже добавил некоторые информацию об отладке, но похоже, что события никогда не запускаются:

Код: Выделить всё

[Activity(Theme = "@style/Maui.MainTheme", MainLauncher = true, LaunchMode = LaunchMode.SingleTop, ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation | ConfigChanges.UiMode | ConfigChanges.ScreenLayout | ConfigChanges.SmallestScreenSize | ConfigChanges.Density)]
public class MainActivity : MauiAppCompatActivity
{
public override bool DispatchKeyEvent(KeyEvent? e)
{
if (e != null)
{
Android.Util.Log.Debug("InTime", $"KeyEvent received: Action={e.Action}, KeyCode={e.KeyCode}");

if (e.KeyCode == Keycode.Stem1 || e.KeyCode == Keycode.Stem2 || e.KeyCode == Keycode.Stem3)
{
if (e.Action == KeyEventActions.Down)
{
e.StartTracking();
return true;
}

if (e.Action == KeyEventActions.Up && !e.IsCanceled && !e.IsLongPress)
{
var viewModel = IPlatformApplication.Current?.Services.GetService();

if (e.KeyCode == Keycode.Stem1)
{
viewModel?.ToggleTimer();
}
else // Stem2 or Stem3
{
viewModel?.ResetTimer();
}
return true;
}
}
}

return base.DispatchKeyEvent(e);
}

public override bool OnKeyLongPress(Keycode keyCode, KeyEvent? e)
{
Android.Util.Log.Debug("InTime", $"Long Press received: KeyCode={keyCode}");
if (keyCode == Keycode.Stem1 || keyCode == Keycode.Stem2 || keyCode == Keycode.Stem3)
{
var viewModel = IPlatformApplication.Current?.Services.GetService();
viewModel?.ResetTimer();
return true;
}
return base.OnKeyLongPress(keyCode, e);
}
}
Android SDK: 21.0
Android Watch: Google PixelWatch 4 под управлением Wear OS 6.1
Есть идеи, как это исправить или что мне нужно изменить?

Вернуться в «C#»