android - 在android模拟器中禁用传感器
问题描述
我在 AVD 中创建了一个虚拟设备,其中包含禁用传感器的新硬件配置文件。然后,我检查 getDefaultSensor 是否为 null 以及 PackageManager.FEATURE_SENSOR_ACCELEROMETER。
在没有传感器硬件配置文件的模拟器上,两者的报告都是正确的。
Context context = mRegistrar.context();
SensorManager sensorManager = (SensorManager) context.getSystemService(context.SENSOR_SERVICE);
Sensor sensor = sensorManager.getDefaultSensor(Sensor.TYPE_MAGNETIC_FIELD);
PackageManager manager = context.getPackageManager();
boolean hasAccelerometer = manager.hasSystemFeature(PackageManager.FEATURE_SENSOR_ACCELEROMETER);
result.success(hasAccelerometer);
传感器不为空并返回
{Sensor name="Goldfish 3-axis Magnetic field sensor", vendor="The Android Open Source Project", version=1, type=2, maxRange=2000.0, resolution=1.0, power=6.7, minDelay=10000}
模拟器设置菜单中似乎也没有禁用传感器的选项。
模拟器有没有办法像在没有传感器的设备上运行一样报告?
解决方案
似乎有办法检测您的应用程序是否在模拟设备上运行:https ://stackoverflow.com/a/13815880/3034696
尝试boolean hasAccelerometer = manager.hasSystemFeature(PackageManager.FEATURE_SENSOR_ACCELEROMETER) && !sensor.getName().contains("Goldfish");
推荐阅读
- javascript - Firebase 根据孙子的值检索文档,该值是一个集合
- c++ - CreateDxgiSurfaceRenderTarget 继续失败
- javascript - 如何在 API 上进行搜索?
- serial-port - MAX14830 不刷新 TX
- python - Python 3 - 直接操作类的属性是否会覆盖其对象的相同属性,从而使属性纯静态?[解决了]
- git - git merge 解决同名文件的冲突
- telegram-bot - Telegram file_id 400:广告请求:错误的文件标识符
- python - 如何向 Broker 发送 Cookie 和 Payload?
- python - 如何在python中将一个函数的变量运行到另一个函数?
- python - for 循环,但从中间 Python 开始