【发布时间】:2017-01-27 11:38:16
【问题描述】:
有没有办法获得传感器的通用名称?目前我的应用程序允许用户从列表视图中选择一个传感器。根据传感器,应用程序应该执行各种操作。
我尝试使用 switch case 语句并使用传感器名称作为参数来执行此操作。但由于传感器名称特定于我的手机型号,因此保护套不适用于其他手机。
例如,“SAMSUNG 重要运动传感器”不会触发 nexus 手机中的运动传感器。
我尝试使用 getType() 来获取传感器的类型。但并非所有传感器都有类型。
我的问题是:有没有办法获得适用于所有手机的传感器名称?
switch(sensorName){
case "K330 3-axis Accelerometer":
Toast.makeText(getActivity(),"Case 1: "+ sensorName, Toast.LENGTH_SHORT).show();
break;
case "YAS532 Magnetic Sensor":
Toast.makeText(getActivity(), "Case 2: "+sensorName, Toast.LENGTH_SHORT).show();
break;
case "K330 Gyroscope sensor":
Toast.makeText(getActivity(),"Case 3: "+ sensorName, Toast.LENGTH_SHORT).show();
break;
case "Barometer Sensor":
break;
case "MAX88920 Proximity Sensor":
break;
case "CM3323 RGB Sensor":
break;
case "SAMSUNG Significant Motion Sensor":
break;
default:
break;
}
【问题讨论】:
-
只是一个简单的想法,不知道传感器名称在不同设备上的含义。你为什么不检查 sensorName.contains("Accelerometer") 而不是大多数时候特定于设备的全名?
-
case sensorName.contains("Step Counter"):这就是您的建议吗?嗯,它告诉我必需:找到的字符串:布尔值。您能否提供代码示例,我可能会误解您的意思 -
我会用 if(sensorName.contains("Step Counter")){ //blabla }else if(sensorName.contains("Accelerometer")) { //blabla } 你做不到.contains() 在一个开关中
-
是的,我想这可行。但是我读过使用这个人的 if 语句不是一个好主意吗?我需要大约 20 个 if 语句才能适应手机中的所有传感器。
-
是的,我同意这不是很酷,但我目前没有看到更好的方法。
标签: java android sensors android-sensors