Hi,
It sounds like you could profit from using our Dual Render Fusion feature. We have some resources available about who the architecture works at Dual Render Fusion (Experimental) (qualcomm.com). You should be able to modify the Android Manifest - other developers are doing this as well.
Here's some info on how to set up a Dual Render Fusion project Dual Render Fusion (Experimental) (qualcomm.com).
Generally it is possible to disable the launcher in the Unity Project Settings under XR Plug-in Management > OpenXR, selecting the options for Base Runtime and unchecking the option "Launch Controller on Host". This disables companion controller activity launching, leaving you free to modify the Android Manifest as you would with a normal Unity application.
However, there is a problem on the AR2 device when an external mouse is connected: the window of the Activity does not receive mouse events. Reviewing the logs and analyzing, it seems that the Snapdragon OpenXR Runtime Window might be intercepting the events. Below is an excerpt from the InputDispatcher log, and the detailed log is attached.
11-20 12:15:05.556 1995 2829 W InputDispatcher: Asynchronous input event injection failed.
11-20 12:15:05.677 1321 5089 D AHAL: AudioStream: Open: 2946: halInputFormat 1 halOutputFormat 1 palformat 1
11-20 12:15:06.112 1321 6725 D AHAL: AudioStream: Open: 2946: halInputFormat 1 halOutputFormat 1 palformat 1
11-20 12:15:06.217 1995 9748 W InputManager-JNI: Input channel object '948a125 Splash Screen com.Superhexa.SuperWorld (client)' was disposed without first being removed with the input manager!
11-20 12:15:07.434 1995 2041 I ActivityManager: Start proc 13233:com.qualcomm.qti.spaces.services:input/u0a172 for service {com.qualcomm.qti.spaces.services/com.qualcomm.qti.openxrruntime.input.spaces.SpacesInputService}
11-20 12:15:07.483 13233 13233 D SnapdragonInputService: onCreate
11-20 12:15:07.483 13233 13233 I SnapdragonInputService: plugin version: v1.0.2
11-20 12:15:07.489 13233 13233 I SpacesInputService: onCreate
11-20 12:15:07.736 13233 13233 D SpacesInputService: onBind intent: Intent { cmp=com.qualcomm.qti.spaces.services/com.qualcomm.qti.openxrruntime.input.spaces.SpacesInputService }
11-20 12:15:07.736 13233 13233 D SnapdragonInputService: onBind
11-20 12:15:07.737 13141 13265 I InputClient: service connected, host: ComponentInfo{com.qualcomm.qti.spaces.services/com.qualcomm.qti.openxrruntime.input.spaces.SpacesInputService}
11-20 12:15:07.738 13233 13233 D SnapdragonInputService: onStartCommand
11-20 12:15:07.780 13141 13214 I InputClient: register device callback, id: 0
11-20 12:15:07.780 13141 13214 I SnapdragonInputDevice: Device 0 setup
11-20 12:15:07.782 13141 13214 I p_create_system: 1: QXR Input
11-20 12:15:07.782 13141 13214 I p_create_system: left: QXR Input
11-20 12:15:10.227 13064 13093 I Unity : [XR] [507350465712] [12:15:10.227][Info ] ==== OpenXR Input ====
11-20 12:15:14.398 13064 13093 W Unity : Qualcomm.Snapdragon.Spaces.Samples.InteractionManager:SetControllerProfileType(InputType)
11-20 12:15:14.404 13064 13093 W Unity : Qualcomm.Snapdragon.Spaces.Samples.InteractionManager:SetControllerProfileType(InputType)
11-20 12:15:19.101 1995 2829 W InputDispatcher: Asynchronous input event injection failed.
11-20 12:15:27.391 1995 2829 W InputDispatcher: Asynchronous input event injection failed.
11-20 12:15:52.702 1995 2010 W InputManager-JNI: Input channel object '8a8577 com.Superhexa.SuperWorld/com.unity3d.player.MainActivity (client)' was disposed without first being removed with the input manager!
11-20 12:15:52.782 1321 5089 D AHAL: AudioStream: Open: 2946: halInputFormat 1 halOutputFormat 1 palformat 1
11-20 12:15:57.919 1995 2829 W InputDispatcher: Asynchronous input event injection failed.
11-20 12:15:57.956 1321 5089 D AHAL: AudioStream: Open: 2946: halInputFormat 1 halOutputFormat 1 palformat 1
Could you please explain your setup in more detail, what device(s) you are using and what the desired result is?
I need more information to show to one of our engineers internally.
kalama:/ # cat /system/build.prop | grep product
ro.product.system.brand=qti
ro.product.system.device=qssi
ro.product.system.manufacturer=QUALCOMM
ro.product.system.model=qssi system image for arm64
ro.product.system.name=qssi
ro.system.product.cpu.abilist=arm64-v8a,armeabi-v7a,armeabi
ro.system.product.cpu.abilist32=armeabi-v7a,armeabi
ro.system.product.cpu.abilist64=arm64-v8a
# from out/target/product/qssi/obj/PACKAGING/system_build_prop_intermediates/buildinfo.prop
# ro.product.cpu.abi and ro.product.cpu.abi2 are obsolete,
# use ro.product.cpu.abilist instead.
ro.product.cpu.abi=arm64-v8a
ro.product.locale=en-US
ro.product.property_source_order=odm,vendor,product,system_ext,system
Glasses device information:
CPU: AR2
On the software side, we have set up the Launch Activity as per your response.
Currently, the display on the DK board and the glasses is consistent. On the hardware side, we have connected a mouse to the DK board. We expect to receive mouse events in the Unity space, but currently, we are not receiving any.
Thank you for that information. This channel is for supporting the Snapdragon Spaces development kits as shown at Devices - Snapdragon Spaces (qualcomm.com). For the setup that you described, you should have access to a separate route for handling support that can address your specific needs.
15210880163
Unity applications integrating the Qualcomm Space SDK default to launching com.unity3d.player.UnityPlayerActivity, making it impossible to specify the Launch Activity through the Manifest manifest, thus preventing the addition of custom business logic.