google-ar / arcore-unity-extensions

Google ARCore Extensions and Geospatial Creator for Unity's AR Foundation
Other
355 stars 96 forks source link

EarthManager.GeoSpatialModeSupported returning `Unsupported` #150

Open ahmed-shariff opened 1 year ago

ahmed-shariff commented 1 year ago

I am trying to get the geospatial api working on tablets. While my core works without a hitch on the smartphones I have testes so fat (Pixel 7, Samsung S20) I am getting an Unsupported error on my Samsung Galaxy Tab S6 Lite, even though its listed on the supported list of devices at https://developers.google.com/ar/devices

The code in question is:

FeatureSupported featureSupport = earthManager.IsGeospatialModeSupported(GeospatialMode.Enabled);

Please let me know if you need more information.

arcore-unity-extensition version: 1.40.0 Unity: 2022.3.9f

nykten commented 1 year ago

Hey, same problem too! I have the same model and outputs the same error saying it's not supported then immedeately crashes the test app when opening it.

ahmed-shariff commented 1 year ago

For what its worth, I also found the following StackOverflow https://stackoverflow.com/questions/75100496/device-compatibility-with-geospatial-api

Using the ARCore supported devices list provided by Google, I'm testing an app that uses the Geospatial API. Testing on a OnePlus 6 produces no errors, however, when using a Samsung Galaxy Tab S6 Lite and a Lenovo Yoga Tab 11 there are issues when using Geospatial API despite both devices being listed as supported too.

I'd like to know if there is another list of supported or tested devices for the Geospatial API, or if additional configurations are needed for tablets.

When calling the function session.isGeospatialModeSupported(Config.GeospatialMode.ENABLED) using a Samsung Galaxy Tab S6 Lite and a Lenovo Yoga Tab 11, the return value is false. Proceeding with the configuration of the session

session.configure(
    config.apply {
        geospatialMode = Config.GeospatialMode.ENABLED
    }
)

Produces an error

################### Undecorated Trace Begin ################# INVALID_ARGUMENT: ARCoreError: third_party/arcore/ar/core/session.cc:482

ARCoreError: third_party/arcore/ar/geo/geoar_module.cc:314
Geospatial API is not supported on this device. [type.googleapis.com/util.ErrorSpacePayload='ArStatusErrorSpace::AR_ERROR_UNSUPPORTED_CONFIGURATION']
=== Source Location Trace: === 
third_party/arcore/ar/core/status.cc:171
third_party/arcore/ar/geo/geoar_module.cc:314
third_party/arcore/ar/core/session.cc:482`
kinjalbhavsar commented 10 months ago

Hello, I am part of the ARCore team.

The information on https://developers.google.com/ar/devices may not be correct unfortunately, for some features of ARCore. The value from IsGeospatialModeSupported is the source of truth - whether Geospatial apis are supported on a device or not.

Specifically the Geospatial apis need a compass sensor to work. And tablet in question doesn't have one. You can add manifest entry uses-feature android:name="android.hardware.sensor.compass" android:required="true" to mark your app as incompatible on devices without this sensor.

ahmed-shariff commented 10 months ago

That is unfortunate. Thank you for clarifying this. We had procured devices based on the list on the website expecting them to work with Geospatial API. It would be great if the website can be updated to avoid such predicaments.

Are there any plans to support devices that may not have these sensors? atleast provide partial functionality?