Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/391.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我的一些安卓传感器已经注册,但无法工作_Java_Android_Sensors_Android Sensors - Fatal编程技术网

Java 我的一些安卓传感器已经注册,但无法工作

Java 我的一些安卓传感器已经注册,但无法工作,java,android,sensors,android-sensors,Java,Android,Sensors,Android Sensors,我注册了6个安卓传感器。在注册之前,我检查了传感器是否为空 11-25 20:21:09.896 10355-10355/ex11.vr.ex11_应用程序I/SensorManager﹕ getReportingMode::sensor.mType=3 11-25 20:21:09.976 10355-10355/ex11.vr.ex11_应用程序I/SensorManager﹕ getReportingMode::sensor.mType=9 11-25 20:21:09.976 10355

我注册了6个安卓传感器。在注册之前,我检查了传感器是否为空

11-25 20:21:09.896 10355-10355/ex11.vr.ex11_应用程序I/SensorManager﹕ getReportingMode::sensor.mType=3

11-25 20:21:09.976 10355-10355/ex11.vr.ex11_应用程序I/SensorManager﹕ getReportingMode::sensor.mType=9

11-25 20:21:09.976 10355-10355/ex11.vr.ex11_应用程序I/SensorManager﹕ getReportingMode::sensor.mType=1

11-25 20:21:09.976 10355-10355/ex11.vr.ex11_应用程序I/SensorManager﹕ getReportingMode::sensor.mType=4

11-25 20:21:09.986 10355-10355/ex11.vr.ex11_应用程序I/SensorManager﹕ getReportingMode::sensor.mType=2

11-25 20:21:09.996 10355-10355/ex11.vr.ex11_应用程序I/SensorManager﹕ getReportingMode::sensor.mType=5

如果一个传感器工作,则文本视图应显示其内容

public void onSensorChanged(SensorEvent event) {
        if (event.accuracy == SensorManager.SENSOR_STATUS_UNRELIABLE)
            return;
        String output = "";
        float[] v = event.values;
        Log.d("sensor type", Integer.toString(event.sensor.getType()));
        switch (event.sensor.getType()) {
            case Sensor.TYPE_ORIENTATION:
                output +=
                        "\n azimuth:" + v[0] +
                                "\n pitch:" + v[1] +
                                "\n roll:" + v[2] + "\n";
                TextView txt1 =(TextView) findViewById(R.id.textView2);
                txt1.setText(output);
                break;
            case Sensor.TYPE_GRAVITY:
                output +=
                        "\n X:" + v[0] +
                                "\n Y:" + v[1] +
                                "\n Z:" + v[2] + "\n";
                TextView txt2 =(TextView) findViewById(R.id.textView4);
                txt2.setText(output);
                break;
            case Sensor.TYPE_ACCELEROMETER:
                output +=
                        "\n X:" + v[0] +
                                "\n Y:" + v[1] +
                                "\n Z:" + v[2] + "\n";
                TextView txt3 =(TextView)findViewById(R.id.textView6);
                txt3.setText(output);
                break;
            case Sensor.TYPE_GYROSCOPE:
                output +=
                        "\n X:" + v[0] +
                                "\n Y:" + v[1] +
                                "\n Z:" + v[2] + "\n";
                TextView txt4 =(TextView)findViewById(R.id.textView8);
                txt4.setText(output);
                break;
            case Sensor.TYPE_MAGNETIC_FIELD:
                output +=
                        "\n X:" + v[0] +
                                "\n Y:" + v[1] +
                                "\n Z:" + v[2] + "\n";
                Log.d("content", output);
                TextView txt5 = (TextView)findViewById(R.id.textView10);
                txt5.setText(output);
                break;
            case Sensor.TYPE_LIGHT:
                output +=
                        "\n Lux: "+v[0]+"\n";
                TextView txt6 = (TextView)findViewById(R.id.textView12);
                txt6.setText(output);
                Log.d("content", output);
                break;
        }
    }
};
我用onResume方法注册了传感器。之后,我执行了应用程序。但这是日志

11-25 20:21:36.016 10355-10355/ex11.vr.ex11_应用程序D/传感器 类型﹕ 四,

11-25 20:21:36.016 10355-10355/ex11.vr.ex11_应用程序D/传感器 类型﹕ 九,

11-25 20:21:36.016 10355-10355/ex11.vr.ex11_应用程序D/传感器 类型﹕ 三,

11-25 20:21:36.086 10355-10355/ex11.vr.ex11_应用程序D/传感器 类型﹕ 四,

11-25 20:21:36.086 10355-10355/ex11.vr.ex11_应用程序D/传感器 类型﹕ 一,

11-25 20:21:36.086 10355-10355/ex11.vr.ex11_应用程序D/传感器 类型﹕ 九,

11-25 20:21:36.086 10355-10355/ex11.vr.ex11_应用程序D/传感器 类型﹕ 三,

传感器2、5(5是光传感器,2是磁场传感器)完全不工作。我在我的代码中找不到任何错误。是否有任何特定的不同方式来注册磁/光传感器? 我用三星Galaxy Note 3设备测试了它,没有用任何模拟器

public void onSensorChanged(SensorEvent event) {
        if (event.accuracy == SensorManager.SENSOR_STATUS_UNRELIABLE)
            return;
        String output = "";
        float[] v = event.values;
        Log.d("sensor type", Integer.toString(event.sensor.getType()));
        switch (event.sensor.getType()) {
            case Sensor.TYPE_ORIENTATION:
                output +=
                        "\n azimuth:" + v[0] +
                                "\n pitch:" + v[1] +
                                "\n roll:" + v[2] + "\n";
                TextView txt1 =(TextView) findViewById(R.id.textView2);
                txt1.setText(output);
                break;
            case Sensor.TYPE_GRAVITY:
                output +=
                        "\n X:" + v[0] +
                                "\n Y:" + v[1] +
                                "\n Z:" + v[2] + "\n";
                TextView txt2 =(TextView) findViewById(R.id.textView4);
                txt2.setText(output);
                break;
            case Sensor.TYPE_ACCELEROMETER:
                output +=
                        "\n X:" + v[0] +
                                "\n Y:" + v[1] +
                                "\n Z:" + v[2] + "\n";
                TextView txt3 =(TextView)findViewById(R.id.textView6);
                txt3.setText(output);
                break;
            case Sensor.TYPE_GYROSCOPE:
                output +=
                        "\n X:" + v[0] +
                                "\n Y:" + v[1] +
                                "\n Z:" + v[2] + "\n";
                TextView txt4 =(TextView)findViewById(R.id.textView8);
                txt4.setText(output);
                break;
            case Sensor.TYPE_MAGNETIC_FIELD:
                output +=
                        "\n X:" + v[0] +
                                "\n Y:" + v[1] +
                                "\n Z:" + v[2] + "\n";
                Log.d("content", output);
                TextView txt5 = (TextView)findViewById(R.id.textView10);
                txt5.setText(output);
                break;
            case Sensor.TYPE_LIGHT:
                output +=
                        "\n Lux: "+v[0]+"\n";
                TextView txt6 = (TextView)findViewById(R.id.textView12);
                txt6.setText(output);
                Log.d("content", output);
                break;
        }
    }
};