Pierwsze kroki z OpenXR na Androidzie XR

Odpowiednie urządzenia XR
Te wskazówki pomogą Ci tworzyć treści na te urządzenia XR.
Gogle XR
Przewodowe okulary XR

Zanim zaczniesz tworzyć aplikację za pomocą obsługiwanych rozszerzeń OpenXR lub obsługiwanego silnika, zapoznaj się z informacjami w sekcjach poniżej i wykonaj wszystkie zadania, aby skonfigurować aplikację pod kątem tworzenia aplikacji w technologii XR.

Konfigurowanie pliku manifestu aplikacji

Podobnie jak w przypadku innych projektów aplikacji na Androida, aplikacja na Androida XR musi mieć plik AndroidManifest.xml z określonymi ustawieniami manifestu. Plik manifestu zawiera podstawowe informacje o aplikacji dla narzędzi do kompilacji Androida, systemu operacyjnego Android i Google Play. Więcej informacji znajdziesz w przewodniku po pliku manifestu aplikacji.

W przypadku aplikacji z różnicami w XR plik manifestu musi zawierać te elementy i atrybuty:

Właściwość PROPERTY_XR_ACTIVITY_START_MODE

Właściwość android:name="android.window.PROPERTY_XR_ACTIVITY_START_MODE" informuje system, że po uruchomieniu aktywności powinna ona zostać otwarta w określonym trybie.

Ta właściwość ma te wartości:

  • XR_ACTIVITY_START_MODE_FULL_SPACE_UNMANAGED (tylko OpenXR)

XR_ACTIVITY_START_MODE_FULL_SPACE_UNMANAGED

Aplikacje utworzone za pomocą OpenXR uruchamiają się w pełnej przestrzeni i muszą korzystać z trybu uruchamianiaXR_ACTIVITY_START_MODE_FULL_SPACE_UNMANAGED. Sygnały niezarządzanej pełnej przestrzeni informują Androida XR, że aplikacja korzysta z OpenXR.


<manifest ... >

   <application ... >
       <property
           android:name="android.window.PROPERTY_XR_ACTIVITY_START_MODE"
           android:value="XR_ACTIVITY_START_MODE_FULL_SPACE_UNMANAGED" />
       <activity
           android:name="com.example.myapp.MainActivity" ... >

           <intent-filter>
               <action android:name="android.intent.action.MAIN" />

               <category android:name="android.intent.category.LAUNCHER" />
           </intent-filter>
       </activity>
   </application>
</manifest>

Właściwość android:name="android.window.PROPERTY_XR_BOUNDARY_TYPE_RECOMMENDED" wskazuje, że aplikacja powinna zostać uruchomiona z określonym typem granicy. Aplikacja musi określać,XR_BOUNDARY_TYPE_LARGE czy jest przeznaczona do tego, aby użytkownicy mogli poruszać się w przestrzeni fizycznej. Określenie wartości XR_BOUNDARY_TYPE_NO_RECOMMENDATION nie powoduje wyświetlenia rekomendacji dotyczących typu granicy bezpieczeństwa, więc system używa typu, który jest już używany.

<manifest ... >

   <application ... >
       <property
           android:name="android.window.PROPERTY_XR_BOUNDARY_TYPE_RECOMMENDED"
           android:value="XR_BOUNDARY_TYPE_LARGE" />
   </application>
</manifest>

<uses-native-library> OpenXR

Aplikacje OpenXR muszą deklarować użycie natywnej biblioteki OpenXR, aby można było prawidłowo wczytać środowisko wykonawcze. Bez tej deklaracji środowisko wykonawcze nie może się załadować.

<manifest ... >

    <application ... >

    <uses-native-library android:name="libopenxr.google.so" android:required="false" />

       <activity
           android:name="com.example.myapp.MainActivity" ... >

           <intent-filter>
               <action android:name="android.intent.action.MAIN" />

               <category android:name="android.intent.category.LAUNCHER" />
           </intent-filter>
        </activity>
    </application>
</manifest>

Funkcje Menedżera pakietów w przypadku aplikacji XR

Gdy dystrybuujesz aplikacje w Sklepie Google Play, możesz określić wymagane funkcje sprzętowe lub programowe w pliku manifestu aplikacji. Element uses-feature umożliwia Sklepowi Play odpowiednie filtrowanie aplikacji wyświetlanych użytkownikom.

Poniższe funkcje są dostępne tylko w aplikacjach z rozszerzoną rzeczywistością.

android.software.xr.api.openxr

Aplikacje kierowane na platformę Android XR i zbudowane za pomocą OpenXR lub Unity muszą zawierać tę funkcję w manifeście aplikacji z atrybutem android:required ustawionym na true.

Aplikacje, które korzystają z pakietu Android XR Extensions Package for Unity w wersji 1.0.0 lub nowszej albo z pakietu Unity OpenXR: Android XR Package w wersji 0.5.0-exp.1 lub nowszej, nie muszą ręcznie dodawać tego elementu do manifestu aplikacji. Te 2 pakiety wstawią ten element do pliku manifestu aplikacji.

Urządzenia mogą określać wersję tej funkcji, która wskazuje najwyższą wersję OpenXR obsługiwaną przez urządzenie. Starsze 16 bitów reprezentuje numer główny, a młodsze 16 bitów – numer podrzędny. Na przykład aby określić wersję OpenXR 1.1, wartość należy ustawić na "0x00010001".

Aplikacje mogą używać wersji funkcji, aby wskazać minimalną wersję OpenXR, której wymagają. Jeśli na przykład Twoja aplikacja wymaga obsługi OpenXR w wersji 1.1, zadeklaruj tę funkcję:

<uses-feature android:name="android.software.xr.api.openxr"
    android:version="0x00010001"
    android:required="true" />

android.hardware.xr.input.controller

Ta funkcja wskazuje, że aplikacja wymaga do prawidłowego działania danych wejściowych z kontrolera ruchu o wysokiej precyzji i 6 stopniach swobody. Jeśli aplikacja obsługuje kontrolery i nie może bez nich działać, ustaw wartość true. Jeśli aplikacja obsługuje kontrolery, ale może działać bez nich, ustaw ją na false.

<!-- Sets android:required to true, indicating that your app can't function on devices without controllers. -->
<uses-feature android:name="android.hardware.xr.input.controller" android:required="true" />

android.hardware.xr.input.hand_tracking

Ta flaga oznacza, że aplikacja wymaga śledzenia dłoni z dużą dokładnością, aby działać prawidłowo, w tym określania pozycji, orientacji i prędkości stawów dłoni użytkownika. Jeśli Twoja aplikacja obsługuje śledzenie dłoni i nie może działać bez tej funkcji, ustaw wartość true. Jeśli aplikacja obsługuje śledzenie dłoni, ale może działać bez tej funkcji, ustaw ją na false.

<!-- Sets android:required to true, indicating that your app can't function on devices without hand tracking. -->
<uses-feature android:name="android.hardware.xr.input.hand_tracking" android:required="true" />

android.hardware.xr.input.eye_tracking

Ten tag wskazuje, że aplikacja wymaga do prawidłowego działania śledzenia wzroku o wysokiej wierności. Jeśli aplikacja obsługuje śledzenie wzroku jako metodę wprowadzania danych i nie może bez niego działać, ustaw wartość true. Jeśli aplikacja obsługuje śledzenie wzroku jako metodę wprowadzania danych, ale może działać bez niego, ustaw tę opcję na false.

<!-- Sets android:required to true, indicating that your app can't function on devices without eye tracking. -->
<uses-feature android:name="android.hardware.xr.input.eye_tracking" android:required="true" />

Dalsze kroki

Po skonfigurowaniu pliku manifestu aplikacji i zapoznaniu się z ważnymi informacjami możesz dowiedzieć się, jak tworzyć aplikacje za pomocą OpenXR: