【问题标题】:Android: where do PackageManager and SensorManager get their information?Android:PackageManager 和 SensorManager 从哪里获取信息?
【发布时间】:2013-11-03 14:44:50
【问题描述】:

在 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 是开源的。
  • PackageManagerSensorManager之间可能存在什么冲突?
  • 我有一个设备报告 android.hardware.sensor.proximity 为假,但同时在查询 SensorManager 时命名一个接近传感器。

标签: android android-package-managers sensormanager


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-28
      • 1970-01-01
      • 1970-01-01
      • 2014-10-20
      相关资源
      最近更新 更多