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 Watch: Google PixelWatch 4 под управлением Wear OS 6.1
Есть идеи, как это исправить или что мне нужно изменить?