我有这个方法
public String getSensor() {
SensorManager mSensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);
String sensoriV ="";
List<Sensor> mList = mSensorManager.getSensorList(Sensor.TYPE_ALL);
for (int i = 1; i < mList.size(); i++) {
sensoriV = "\n" + mList.get(i).getName() ;
}
return sensoriV;
}
在另一个方法(相同的活动类)中,我有这个代码
String[] sensori = { ""+sensor };
为什么当我打开应用程序时,我的Nexus只有一个传感器作为输出?错误在哪里以及如何修复
答案 0 :(得分:2)
您在以下行中忘记了+
:
sensoriV = "\n" + mList.get(i).getName() ;
应该是:
sensoriV += "\n" + mList.get(i).getName() ;
你的for循环应该从int i = 0
开始。
你实际上得到了所有正确的信息。这只是字符串连接例程中的语义错误。
答案 1 :(得分:0)
1.可能只有一个传感器 2.可能是你的初始i = 0,而不是从i = 1开始循环 3.您显示的信息不够
答案 2 :(得分:0)
试试这个
private SensorManager mSensorManager;
...
mSensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
List<Sensor> deviceSensors = mSensorManager.getSensorList(Sensor.TYPE_ALL);
System.out.println(deviceSensors.size());//It will print the No of sensor availbale.
for(int i=0; i<deviceSensors.size(); i++) {
System.out.println(deviceSensors.get(i).getName());
}