Sprawdzanie, jak aplikacja postępuje ze zmianami w działaniu

Podgląd dla deweloperów na Wear OS 5 opiera się na Androidzie 14 (poziom interfejsu API 34), który jest nowszą wersją w porównaniu z wersją, na której jest oparty Wear OS 4 (Android 13 lub interfejs API 33). Dlatego gdy przygotowujesz aplikację na Wear OS do wykorzystania w wersji przedpremierowej dla Wear OS 5, musisz uwzględnić zmiany w działaniu systemu, które wpływają na wszystkie aplikacje na Androida 14, oraz zmiany dotyczące aplikacji kierowanych na Androida 14.

Zmiany w Wear OS 5 mające wpływ na wszystkie aplikacje

Podane niżej zmiany w działaniu mają wpływ na przypadki użycia i biblioteki występujące tylko w Wear OS. Te zmiany dotyczą wszystkich aplikacji działających na Wear OS 5, niezależnie od docelowej wersji pakietu SDK.

Panel prywatności

W wersji testowej dla deweloperów aplikacji na Wear OS 5 dodaliśmy obsługę panelu prywatności, który na urządzeniach mobilnych z Androidem 12 był początkowo dostępny.

Panel prywatności zapewnia użytkownikom scentralizowany wgląd w wykorzystanie danych przez każdą aplikację, w tym:

  • Typy danych, do których uzyskujesz dostęp, np. lokalizacja i mikrofon.
  • czas ostatniego uzyskania dostępu do tych typów danych;

Dzięki dostępowi do tych informacji użytkownicy mogą podejmować bardziej świadome decyzje dotyczące tego, które aplikacje nadal powinny mieć dostęp do ich danych osobowych. Aby zachować zaufanie użytkowników, wykorzystuj dane w sposób odpowiedzialny i przejrzysty, gdy je zbierasz i wykorzystujesz.

Większość źródeł danych widżetów wymaga użycia formatu tarczy zegarka

W nadchodzących wersjach Wear OS, w tym w wersji testowej dla programistów na Wear OS 5, tarcze zegarka muszą używać Formatu tarczy zegarka, aby obsługiwać widżety, które zawierają dane użytkownika. Zalecamy zaktualizowanie tarczy zegarka, aby korzystała z Formatu tarczy zegarka. Dowiedz się więcej o zmianach w widżetach.

Tymczasowo dezaktywuj zmianę na potrzeby testowania

Funkcja ta jest włączona domyślnie. Aby w celach testowych wyłączyć flagę funkcji odpowiadającą tej zmianie, użyj tego polecenia:

adb shell device_config put wear_services \
  com.google.wear.services.infra.flags.restrict_complications_flag false && \
  adb reboot

Zmiany w Wear OS 5 wpływające na aplikacje kierowane na Androida 14

Te zmiany będą mieć wpływ na Twoją aplikację tylko wtedy, gdy zaktualizujesz docelową wersję pakietu SDK do Androida 14, czyli wersji wykorzystywanej na potrzeby wersji testowej pakietu SDK na Wear OS 5.

Zawsze włączone aplikacje mogą przenieść się w tle

Po włączeniu podglądu dla deweloperów w Wear OS 5 system przez pewien czas przenosi aplikacje zawsze włączone do tła w tle. Użytkownicy mogą skonfigurować czas oczekiwania w ustawieniach systemowych.

Jeśli w stałej aplikacji aplikacja wyświetla informacje o trwającym zadaniu użytkownika (np. odtwarzaniu muzyki lub sesji treningowej), możesz chcieć, aby bieżące działanie było widoczne do czasu jego zakończenia. Aby to zrobić, użyj interfejsu Ongoing Activity API, aby opublikować powiadomienie o trwającej aktywności, które jest powiązane z Twoją bieżącą aktywnością.

Aby system mógł rozpoznać trwającą aktywność, intencja dotyku ciągłego powiadomienia musi wskazywać aktywną aktywność, jak pokazano w tym fragmencie kodu:

// Create a pending intent that point to your always-on activity
val touchIntent =
    PendingIntent.getActivity(
        context,
        0,
        Intent(context, MyAlwaysOnActivity::class.java),
        PendingIntent.FLAG_MUTABLE or PendingIntent.FLAG_UPDATE_CURRENT
    )

val notificationBuilder =
    NotificationCompat.Builder(this, CHANNEL_ID)
    // ...
    .setOngoing(true)

val ongoingActivity =
    OngoingActivity.Builder(
        applicationContext, NOTIFICATION_ID, notificationBuilder
    )
    // ...
    .setTouchIntent(touchIntent)
    .build()

ongoingActivity.apply(applicationContext)

notificationManager.notify(
    NOTIFICATION_ID,
    notificationBuilder.build()
)

Tymczasowo dezaktywuj zmianę na potrzeby testowania

Funkcja ta jest włączona domyślnie. Aby w celach testowych wyłączyć flagę funkcji odpowiadającą tej zmianie, użyj tego polecenia:

adb shell device_config put wear_frameworks \
  com.google.android.clockwork.systemui.flags.ambiactive_components_expirable \
  false && adb reboot

Aplikacje do nagrywania ćwiczeń muszą zadeklarować typ usługi na pierwszym planie

Jeśli Twoja aplikacja rejestruje ćwiczenia w ramach sesji treningu użytkownika, musisz określić w usłudze na pierwszym planie typ usługi na pierwszym planie health, który wywołuje ExerciseClient. Jeśli aplikacja może sprawdzać informacje o lokalizacji podczas sesji treningu, musisz też określić typ usługi na pierwszym planie (location):

<manifest ...>
  <uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
    <application ...>
      <!-- If your app can also monitor location information, use
           android:foregroundServiceType="health|location" instead. -->
      <service
          android:name=".MyExerciseSessionRecorder"
          android:foregroundServiceType="health">
      </service>
    </application>
</manifest>

Niektóre urządzenia spoza nadgarstka pozostają odblokowane na dłużej

Na obsługiwanych urządzeniach z Wear OS 5 w wersji testowej system wykrywa, czy użytkownik nosi urządzenie na nadgarstku. Jeśli użytkownik wyłączy wykrywanie nadgarstka, a następnie ściągnie urządzenie z nadgarstka, system pozostaw je odblokowany na dłużej niż zwykle.

Jeśli Twoja aplikacja wymaga wyższego poziomu bezpieczeństwa – np. przy wyświetlaniu potencjalnie wrażliwych lub prywatnych danych – najpierw sprawdź, czy wykrywanie nadgarstka jest włączone:

val wristDetectionEnabled =
        isWristDetectionAutoLockingEnabled(applicationContext)

Jeśli ta metoda zwraca wartość false, poproś użytkownika o zalogowanie się na konto w aplikacji, zanim wyświetli treści przeznaczone dla użytkowników.

Przeciągane treści mogą nakładać się na punkty aktywacji gestów systemowych

Począwszy od wersji testowej dla deweloperów na Wear OS 5, system traktuje gesty zdarzeń ruchu niezależnie od nawigacji przy użyciu gestów w interfejsie systemu.

Jeśli UI aplikacji zawiera duże, możliwe do przeciągania obszary, które nakładają się na obszary gestów systemowych, konieczne może być dodanie dla tych widoków prostokątów wykluczania gestów systemowych. Aby to zrobić, wywołaj metodę setSystemGestureExclusionRects(), by poinformować interfejs systemu, że ma ignorować gesty nawigacji w określonych obszarach. Przypomina to obsługę sprzecznych gestów w aplikacji w aplikacji mobilnej, dzięki czemu interfejs jest bardzo nowoczesny.

Dzięki interfejsowi API setSystemGestureExclusionRects() możesz w różny sposób reagować na żądania gestów w interfejsie systemu. Na przykład interfejs systemu może pokazywać dodatkowe wskazówki (takie jak poziomy pasek), by potwierdzić zamiar użytkownika.

Nieliniowe skalowanie czcionek

Począwszy od wersji testowej dla deweloperów na Wear OS 5 system obsługuje płynniejsze skalowanie czcionek, zwłaszcza w przypadkach, gdy użytkownicy wybierają większe rozmiary czcionek w komponentach interfejsu opartych na widokach.

Ograniczenia dotyczące intencji niejawnych i oczekujących

Jeśli w aplikacji używasz kafelków, sprawdź, czy na intencje wpływają ograniczenia intencji niejawnych i oczekujących.

Niektórych powiadomień nadal nie można zamknąć

Jeśli korzystasz z przenośnej wersji aplikacji na urządzeniu z Androidem 14 (poziom interfejsu API 34) lub nowszym, użytkownicy mogą odrzucać powiadomienia, których w poprzednich wersjach nie można było zamknąć.

Jednak w wersji testowej dla deweloperów aplikacji na Wear OS 5 nadal nie można ich zamknąć.

Inne zmiany w stosunku do Androida 14

Poniższe zmiany wprowadzone w Androidzie 14 najprawdopodobniej wpływają na Twoją aplikację na Wear OS.

Zmiany w Androidzie 14, które wpływają na wszystkie aplikacje

Zmiany w Androidzie 14, które wpływają na aplikacje kierowane na interfejs API na poziomie 34