@@ -89,6 +89,19 @@ internal class XRSessionFeatureBuildHooks : OpenXRFeatureBuildHooks
8989 { "value" , "ACTIVITY_START_MODE_UNMANAGED_FULL_SPACE" }
9090 }
9191 } ;
92+ private static readonly ManifestElement _libopenxrso =
93+ new ManifestElement ( )
94+ {
95+ ElementPath = new List < string >
96+ {
97+ "manifest" , "application" , "uses-native-library"
98+ } ,
99+ Attributes = new Dictionary < string , string >
100+ {
101+ { "name" , "libopenxr.google.so" } ,
102+ { "required" , "false" }
103+ }
104+ } ;
92105#endif // XR_MGMT_4_4_0_OR_NEWER
93106
94107 /// <inheritdoc/>
@@ -172,20 +185,28 @@ public override ManifestRequirement ProvideManifestRequirement()
172185 Debug . Log ( stringBuilder ) ;
173186 }
174187
175- if ( CheckSceneUnderstandingPermission ( ) )
188+ if ( CheckSceneUnderstandingCoarsePermission ( ) )
176189 {
177190 requiredManifest . Add (
178- GetAndroidXRPermissionElement ( AndroidXRPermission . SceneUnderstanding ) ) ;
191+ GetAndroidXRPermissionElement ( AndroidXRPermission . SceneUnderstandingCoarse ) ) ;
179192 Debug . LogFormat ( "Inject permission manifest: {0}" ,
180- AndroidXRPermission . SceneUnderstanding . ToPermissionString ( ) ) ;
193+ AndroidXRPermission . SceneUnderstandingCoarse . ToPermissionString ( ) ) ;
181194 }
182195
183- if ( CheckEyeTrackingPermission ( ) )
196+ if ( CheckSceneUnderstandingFinePermission ( ) )
184197 {
185198 requiredManifest . Add (
186- GetAndroidXRPermissionElement ( AndroidXRPermission . EyeTracking ) ) ;
199+ GetAndroidXRPermissionElement ( AndroidXRPermission . SceneUnderstandingFine ) ) ;
187200 Debug . LogFormat ( "Inject permission manifest: {0}" ,
188- AndroidXRPermission . EyeTracking . ToPermissionString ( ) ) ;
201+ AndroidXRPermission . SceneUnderstandingFine . ToPermissionString ( ) ) ;
202+ }
203+
204+ if ( CheckEyeTrackingCoarsePermission ( ) )
205+ {
206+ requiredManifest . Add (
207+ GetAndroidXRPermissionElement ( AndroidXRPermission . EyeTrackingCoarse ) ) ;
208+ Debug . LogFormat ( "Inject permission manifest: {0}" ,
209+ AndroidXRPermission . EyeTrackingCoarse . ToPermissionString ( ) ) ;
189210 }
190211
191212 if ( CheckEyeTrackingFinePermission ( ) )
@@ -204,6 +225,9 @@ public override ManifestRequirement ProvideManifestRequirement()
204225 AndroidXRPermission . HandTracking . ToPermissionString ( ) ) ;
205226 }
206227
228+ requiredManifest . Add ( _libopenxrso ) ;
229+ Debug . LogFormat ( "Inject native library manifest: libopenxr.google.so" ) ;
230+
207231 List < ManifestElement > emptyElement = new List < ManifestElement > ( ) ;
208232 return new ManifestRequirement
209233 {
@@ -230,7 +254,7 @@ private static ManifestElement GetAndroidXRPermissionElement(AndroidXRPermission
230254 } ;
231255 }
232256
233- private bool CheckSceneUnderstandingPermission ( )
257+ private bool CheckSceneUnderstandingCoarsePermission ( )
234258 {
235259 XRTrackableFeature trackableFeature =
236260 AndroidXRBuildUtils . GetActiveFeature < XRTrackableFeature > ( ) ;
@@ -265,7 +289,13 @@ private bool CheckSceneUnderstandingPermission()
265289 ( anchorFeature != null && anchorFeature . enabled ) ;
266290 }
267291
268- private bool CheckEyeTrackingPermission( )
292+ private bool CheckSceneUnderstandingFinePermission( )
293+ {
294+ /// Add check for scene understanding when implemented.
295+ return false ;
296+ }
297+
298+ private bool CheckEyeTrackingCoarsePermission( )
269299 {
270300 FoveatedRenderingFeature foveatedRendering =
271301 AndroidXRBuildUtils. GetActiveFeature< FoveatedRenderingFeature> ( ) ;
0 commit comments