Android:PackageManager和SensorManager在哪里获取其信息?

问题描述 投票:1回答:2

在Android上,要找到可用的系统功能,您可以执行以下操作:

PackageManager pm = getPackageManager();
for (FeatureInfo fi : pm.getSystemAvailableFeatures()) {
    String feature_name = fi.name;
    if(fi.name == null){
        feature_name = "GlEs Version " + fi.getGlEsVersion();
    }
    Log.i("theTag", feature_name + "");
}

类似地,要找到可用的传感器,您可以执行以下操作:

SensorManager sensorManager = (SensorManager)getSystemService(SENSOR_SERVICE);
List<Sensor> sensor_list = sensorManager.getSensorList(Sensor.TYPE_ALL);
for (Sensor s : sensor_list) {
    Log.i("theTag", s.getName() + " - type: " + s.getType());
}

我的问题是Android如何知道PackageManager和SensorManager应该报告什么?设备制造商提供了某种清单还是系统轮询了组件以查看可用的组件?发生冲突时,两者中哪一个更具权威性?

android android-package-managers sensormanager
2个回答
0
投票

Android是一堆软件和固件,其中包括操作系统,内置应用程序和系统服务。

我们可以编写自己的服务,以向我们的应用程序提供一些数据。同样,我们可以使用向我们提供一些数据的系统服务。这就是为什么有电话SensorManager sensorManager = (SensorManager)getSystemService(SENSOR_SERVICE);


0
投票

设备上存在的所有传感器的列表由HAL报告实施。

发件人:https://source.android.com/devices/sensors

HAL(硬件抽象层)从驱动程序获取信息,而驱动程序则从传感器集线器获取信息。

The Android Sensor stack from https://source.android.com/devices/sensors/sensor-stack. Applications > SDK > Framework > HAL > Drivers > Sensors hub > Sensors

在官方页面上了解有关Android Sensor堆栈的更多信息:https://source.android.com/devices/sensors/sensor-stack

© www.soinside.com 2019 - 2024. All rights reserved.