Google 播放,通过软件传感器过滤应用

Google Play, filter app by software sensor

我正在开发一个应用程序,它使用旋转矢量来确定设备相对于地面的角度。 为了获得该角度,我使用了一个旋转矢量。

TYPE_ROTATION_VECTOR - 适用于具有陀螺仪和磁力计的设备。 TYPE_GAME_ROTATION_VECTOR - 适用于只有陀螺仪的设备。 TYPE_GEOMAGNETIC_ROTATION_VECTOR - 对于只有磁力计的设备。

因此,我创建了三种风格,每种都有适当的代码来获取该软件传感器,并且每种都有清单中所需的适当功能。

将多个 APK 上传到 Google 后,Play 设备能够根据它们拥有的传感器获得正确的 APK。 但是,有一种情况,当设备(例如,旧的三星 Galaxy A5)有一个磁力计(因此,它可以下载第三个版本),但它没有软件传感器,并且 getDefaultSensor(Sensor.TYPE_GEOMAGNETIC_ROTATION_VECTOR) returns null.

问题是 - 如何制作一个不仅适用于这样的硬件传感器的过滤器:

<uses-feature
android:name="android.hardware.sensor.compass"
android:required="true"/> 

还可以通过软件传感器进行过滤。这可能吗?或者对于没有此类传感器的设备,是否有任何其他方法可以对 GP 隐藏该应用程序?

我认为现在使用清单不可能做到这一点。 我怀疑您没有太多有问题的设备,因为这些设备非常罕见。你总是可以 exclude these models individually in the Device Library in the Play console.