[Android][sensor]CTS测试stepcounter失败

CTS测试报告中显示

junit.framework.AssertionFailedError: PackageManager#hasSystemFeature(android.hardware.sensor.stepcounter) returns true but SensorManager#getSensorList(19) shows sensors [] expected:<true> but was:<false>

初步怀疑是实际没有stepcounter(还未上计步代码),但是测试有stepcounter项,进行如下排查:

adb shell dumpsys sensorservice

未找到计步,说明实际确实是没有计步器的(此时该project还未进行计步器的bring up)

进行以下尝试:

1. 删除机器中文件android.hardware.sensor.stepcounter.xml(根据project的相应目录进行删除)

rm –rf /vendor/etc/permissions/android.hardware.sensor.stepcounter.xml

CTS测试stepcounter项成功,但是stepdetector报错:

junit.framework.AssertionFailedError: PackageManager#hasSystemFeature(android.hardware.sensor.stepdetector) returns true but SensorManager#getSensorList(18) shows sensors [] expected:&lt;true&gt; but was:&lt;false&gt;

2. 删除机器中文件android.hardware.sensor.stepcounter.xml & android.hardware.sensor.stepdetector.xml

rm –rf /vendor/etc/permissions/android.hardware.sensor.stepcounter.xml
rm –rf /vendor/etc/permissions/android.hardware.sensor.stepdetector.xml

CTS测试pass。
可以确定是实际没有stepcounter,但是测试有stepcounter项。然而该基线上有两款产品,一款是已经合入了计步相关的代码,我们称为projectdone,一款是还未合入的,我们称为projectno。这时候需要修改编译文件,去掉projectno的android.hardware.sensor.step*.xml。

3. 平台编译添加条件编译

/device/qcom/msm8937_32go/msm8937_32go.mk

在projectno中去掉android.hardware.sensor.step*.xml

# Feature definition files for msm8937
ifeq ($(TARGET_PRODUCT), projectdone)
PRODUCT_COPY_FILES += \
    frameworks/native/data/etc/android.hardware.sensor.accelerometer.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.accelerometer.xml \
    frameworks/native/data/etc/android.hardware.sensor.compass.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.compass.xml \
    frameworks/native/data/etc/android.hardware.sensor.gyroscope.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.gyroscope.xml \
    frameworks/native/data/etc/android.hardware.sensor.light.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.light.xml \
    frameworks/native/data/etc/android.hardware.sensor.stepcounter.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.stepcounter.xml \
    frameworks/native/data/etc/android.hardware.sensor.stepdetector.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.stepdetector.xml
else
PRODUCT_COPY_FILES += \
    frameworks/native/data/etc/android.hardware.sensor.accelerometer.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.accelerometer.xml \
    frameworks/native/data/etc/android.hardware.sensor.compass.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.compass.xml \
    frameworks/native/data/etc/android.hardware.sensor.gyroscope.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.gyroscope.xml \
    frameworks/native/data/etc/android.hardware.sensor.light.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.light.xml
endif
 

CTS测试stepcounter失败。

即对msm8937_32.mk 进行条件编译,失败。

4. 在product的编译中去掉android.hardware.sensor.step*.xml

在projectno的编译中去掉android.hardware.sensor.step*.xml

device/vendorname/productname/ projectnoname/projectnoname.mk

# Feature definition files for msm8937
PRODUCT_COPY_FILES += \
    frameworks/native/data/etc/android.hardware.sensor.accelerometer.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.accelerometer.xml \
    frameworks/native/data/etc/android.hardware.sensor.compass.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.compass.xml \
    frameworks/native/data/etc/android.hardware.sensor.gyroscope.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.gyroscope.xml \
    frameworks/native/data/etc/android.hardware.sensor.light.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.light.xml
    #frameworks/native/data/etc/android.hardware.sensor.stepcounter.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.stepcounter.xml \
    #frameworks/native/data/etc/android.hardware.sensor.stepdetector.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.stepdetector.xml
   

CTS测试成功。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

霁之鸢

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值