Nous avons introduit une nouvelle autorisation qui permet aux utilisateur·ices de contrôler quelle application peut accéder à leurs données spatiales. Cette autorisation concerne les applications fonctionnant sur le Quest 2, le Quest Pro et le Quest 3. Pour en savoir plus, consultez la page Demander des autorisations d’exécution.
Au moment d’exécuter une application dont vous souhaitez qu’elle utilise l’API Scene, vous devez demander une autorisation d’accès aux données spatiales. La requête affichera une boîte de dialogue unique d’explication des autorisations, suivie d’une boîte de dialogue de confirmation de l’autorisation accordée. Ce n’est que lorsque l’utilisateur ou l’utilisatrice aura donné son accord que les applications pourront interroger toutes les données spatiales de son appareil.
Appareils
L’accès aux données spatiales via le nouveau flux d’autorisations est disponible sur le Quest 2, le Quest Pro et le Quest 3.
Link
Vous n’avez pas besoin de demander une autorisation d’exécution de scène lors du développement d’applications via Link. Les applications fonctionnant depuis Link continueront d’accéder aux données spatiales lors de la demande d’ancrages sur l’appareil.
Déclarer l’autorisation
Dans le fichier AndroidManifest.xml de votre application, déclarez l’autorisation suivante :
Selon les règles d’autorisation sur Android, il est recommandé de ne demander l’autorisation que lorsque la fonctionnalité est utilisée et de fournir une redirection si l’utilisateur ou l’utilisatrice décide de ne pas accorder l’autorisation.
Si l’application est compilée avec les versions actuelles du SDK, alors la demande d’autorisation sera facultative dans l’application. Le système affichera automatiquement une boîte de dialogue d’autorisation dès le lancement de l’application.
Procédure à suivre pour demander une autorisation
Demander une autorisation en Java via NativeActivity :
package com.oculus.test.permissionTestApp;
import android.content.pm.PackageManager;
import android.os.Bundle;
import android.util.Log;
public class MainActivity extends android.app.NativeActivity {
private static final String PERMISSION_USE_SCENE = "com.oculus.permission.USE_SCENE";
private static final int REQUEST_CODE_PERMISSION_USE_SCENE = 1;
static {
System.loadLibrary("openxr_loader");
System.loadLibrary("permissionTestApp");
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestScenePermissionIfNeeded();
}
private void requestScenePermissionIfNeeded() {
if (checkSelfPermission(PERMISSION_USE_SCENE) != PackageManager.PERMISSION_GRANTED) {
requestPermissions(new String[] {PERMISSION_USE_SCENE}, REQUEST_CODE_PERMISSION_USE_SCENE);
}
}
}
Si les utilisateur·ices n’accordent pas l’autorisation d’accès aux données spatiales, la fonction XrQuerySpacesFB ne renverra pas de XrSpace. Ce comportement se produira indépendamment du filtre appliqué. Plus précisément, la fonction XrQuerySpacesFB ne retournera pas de XrSpace contenant la fonction XrSpaceComponentTypeFB suivante. Cela se vérifiera même si l’appareil de l’utilisateur·ice a capturé une scène :