Connecting the glasses in Android
It seems to be a chore at first and depending on your phone, it might or might not work.
Don't look into "desktop mode" etc.
Issue logged here
Pixel 8 has this toggle in settings "External displays" - and you have to set the checkbox every time you connect.
Xperia 5 does not have this toggle.
Automatic route:
Install the APK and via adb
adb shell pm grant com.sophior.screenenabler android.permission.WRITE_SECURE_SETTINGS
Manual route;
Analyzing via adb (via wireless debugging), it is this action that is required:
adb shell cmd display enable-display 139
You can find the display id via this one:
adb shell cmd display get-displays
If it is not listed find it here:
adb shell dumpsys display | findstr /i "XREAL HDMI EXTERNAL mDisplayId mIsEnabled state OFF DisplayViewport"
Then, the Android will prompt to "Allow display over other apps", when enabled, the glasses will start up and I can read the parameters in the headtracking and have a 3D app.
When I exit the app, there is the mirroring of Android.
When I exit the app, there is the mirroring of Android.
I made this script, but it requires to be connected to the Android phone with adb:
$adb = "$env:LOCALAPPDATA\Android\Sdk\platform-tools\adb.exe"
$dump = & $adb shell dumpsys display
$displayId = $null
$currentId = $null
$inExternalBlock = $false
$isXreal = $false
$isDisabled = $false
foreach ($line in $dump) {
if ($line -match 'mDisplayId=(\d+)') {
$currentId = $matches[1]
$inExternalBlock = $false
$isXreal = $false
$isDisabled = $false
}
if ($line -match 'type EXTERNAL|type=EXTERNAL|mPrimaryDisplayDevice=HDMI Screen|mPrimaryDisplayDevice=XREAL') {
$inExternalBlock = $true
}
if ($line -match 'XREAL One Pro|HDMI Screen') {
$isXreal = $true
}
if ($line -match 'mIsEnabled=false|state OFF|committedState OFF') {
$isDisabled = $true
}
if ($currentId -and $inExternalBlock -and $isXreal -and $isDisabled) {
$displayId = $currentId
break
}
}
if (-not $displayId) {
Write-Host "No disabled XREAL/external display found."
exit 1
}
Write-Host "Enabling external display ID $displayId..."
& $adb shell cmd display enable-display $displayId
& $adb shell input keyevent KEYCODE_WAKEUP
Write-Host "Done."