Android 安卓:PackageManager和SensorManager从哪里获得信息?

Android 安卓:PackageManager和SensorManager从哪里获得信息?,android,android-package-managers,sensormanager,Android,Android Package Managers,Sensormanager,在Android上,要了解可用的系统功能,您可以执行以下操作: PackageManager pm = getPackageManager(); for (FeatureInfo fi : pm.getSystemAvailableFeatures()) { String feature_name = fi.name; if(fi.name == null){ feature_name = "GlEs Version " + fi.getGlEsVersion()

在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());
}
同样,要找到可用的传感器,您可以执行以下操作:

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());
}
SensorManager SensorManager=(SensorManager)getSystemService(SENSOR\u SERVICE);
List sensor\u List=sensorManager.getSensorList(sensor.TYPE\u ALL);
用于(传感器:传感器列表){
Log.i(“theTag”,s.getName()+”-type:+s.getType());
}

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

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

我们可以编写自己的服务,为应用程序提供一些数据。像wise一样,我们可以使用系统服务为我们提供一些数据。这就是为什么有一个调用
SensorManager SensorManager=(SensorManager)getSystemService(SENSOR\u SERVICE)

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

发件人:

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


在官方页面上阅读更多关于Android传感器堆栈的信息:

如果你真的想知道,请查找源代码–毕竟Android是开源的。
PackageManager
SensorManager
之间可能存在什么冲突?我有一台设备报告Android.hardware.Sensor.approxity为false,但在查询SensorManager时,同时命名接近传感器。