如果未授予相关权限,则检测android磨损传感器存在

时间:2017-01-29 19:16:47

标签: wear-os android-permissions android-sensors

我的表盘需要使用心率传感器,我想知道在请求许可之前是否存在物理传感器。根据文档,我可以通过两种方式实现:

private SensorManager mSensorManager;
mSensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
List<Sensor> deviceSensors = mSensorManager.getSensorList(Sensor.TYPE_HEART_RATE);

boolean heartRateSensorEnabled = mSensorManager.getDefaultSensor(Sensor.TYPE_HEART_RATE) != null;

但是,如果未授予权限(默认情况下),我会获得空传感器列表,也没有默认传感器。即使没有意义,这也迫使我请求许可(例如索尼SW3没有传感器)。有没有办法区分&#34;许可被拒绝&#34;并且&#34;没有传感器存在&#34;?

1 个答案:

答案 0 :(得分:0)

尝试查看requestPermissions https://developer.android.com/reference/android/support/v4/app/ActivityCompat.html#requestPermissions(android.app.Activity,java.lang.String[], int)方法。它有回调ActivityCompat.OnRequestPermissionsResultCallback,如果权限被拒绝则返回。

要检查传感器是否存在,请尝试使用this SO thread中列出传感器的代码并查找TYPE_HEART_RATE。