Meta Quest Headset Integration with Mobile Companion Application
Meta Quest 3 is a standalone VR headset, but full product experience often requires mobile companion: settings management, media content transmission, multiplayer lobbies, purchases and subscriptions. Not trivial task: headset runs Android-based OS with limited access, Meta provides several communication channels with different constraints.
Quest ↔ Mobile App Communication Methods
Meta Companion App SDK (official consumer product path). Meta doesn't open public SDK for arbitrary Quest ↔ phone communication. Official developer route—via Meta Platform SDK, providing:
- Meta account authentication (OAuth 2.0 via Meta API)
- Notifications API: phone receives events from Quest (friend online, room invite)
- Deep links: mobile app opens content in Quest via
oculus://URI scheme
Local network (LAN). Quest 3 and phone on same Wi-Fi—most flexible channel. Quest side: Android app in Kotlin/Java, listens to WebSocket or REST. Mobile side: standard HTTP client. Quest discovery on network: mDNS via NsdManager (Android) or Network.framework + Bonjour (iOS). Use this approach for enterprise solutions where Quest managed by corporate MDM.
Bluetooth. Quest 3 supports BT 5.1. Quest side—Android BT GATT Server or Classic SPP. Limitation: ~1–2 Mbit/s throughput, not for media, sufficient for control commands and telemetry.
USB (ADB mode via USB-C). For developer tools and enterprise deployment. Via ADB transfer files (adb push), install APK, read logs. Not used in production apps.
Companion App Architecture
Typical scenario: user selects content and settings on phone → Quest loads and launches.
[iOS/Android companion] ──HTTP/WS──► [Backend API]
│
[Meta Quest app] ─────────────────────────┘
Quest app and mobile sync via shared backend rather than directly—more reliable, works without LAN. For real-time (e.g., phone as VR controller)—WebSocket via relay server with 50–100 ms latency, acceptable for non-game interactions.
Meta Multiplayer SDK (Photon + Meta Parties). If product is social VR platform, use Meta Platform SDK Groups, Parties, Invites. Companion app on phone shows friend list, online statuses from Meta Social Graph (with user permission via Meta Login), sends room invites to VR.
Mobile-Side Specifics
iOS deep linking from Quest. When user accepts invite in Quest—phone should open on correct screen. Implement via Universal Links + oculus:// custom scheme. In Swift: UIApplicationDelegate.application(_:open:options:) handles incoming link, parse parameters, navigate.
Content management. Media files (video, images, 3D models) uploaded via phone to cloud → Quest downloads. Not direct phone→headset transfer (too slow over BT, LAN unreliable). CDN + pre-signed URL from S3 or equivalent.
Notifications. Quest app via Meta Platform SDK sends events → server → FCM/APNs → phone. Standard push-notification flow, nothing Quest-specific.
Publication and Constraints
Quest app published in Meta Horizon Store (formerly Oculus Store) or via App Lab (no review, closed testing). Companion mobile app—App Store / Google Play. Meta Horizon Store has own content review guidelines, separate from Apple/Google.
Timeline: companion app with LAN communication and basic content management—6–10 weeks. Full Meta Platform SDK integration (authentication, invites, social functions) + iOS/Android companion—3–5 months. Cost calculated individually.







