0

我有这个方法

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 上只有一个传感器作为输出?错误在哪里,我该如何解决

4

3 回答 3

2

+您在以下行中忘记了 a :

sensoriV = "\n" + mList.get(i).getName() ;

应该:

sensoriV += "\n" + mList.get(i).getName() ;

你的 for 循环应该从int i = 0.

你实际上得到了所有正确的信息。这只是您的字符串连接例程中的语义错误。

于 2013-10-21T10:19:44.047 回答
0

1.可能只有一个传感器 2.可能你应该初始化 i=0,而不是从 i=1 开始循环 3.你显示的信息不够

于 2013-10-21T09:58:37.050 回答
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());

     }
于 2013-10-21T10:12:59.013 回答