My watch face needs access to heart rate sensor, and I would like to know whether there is a physical sensor present prior to asking for permission. According to documentation, I can do it in two ways:
private SensorManager mSensorManager;
mSensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
List<Sensor> deviceSensors = mSensorManager.getSensorList(Sensor.TYPE_HEART_RATE);
or
boolean heartRateSensorEnabled = mSensorManager.getDefaultSensor(Sensor.TYPE_HEART_RATE) != null;
However, if permission is not granted (which is by default), I get empty sensor list and also no default sensor. That makes me force ask for permission even if it is meaningless (Sony SW3, for example, doesn't have the sensor). Is there a way to differentiate between "permission denied" and "no sensor present"?