4

センサーの読み取り値をファイルに書き込もうとしています。私はこのコードを持っています..私が書いているデータを見る必要がありますが、それにアクセスする方法がわかりません。android wearのファイルマネージャをダウンロードしたのですが、ストレージフォルダに入ることはできません。以下は私のコードです、あなたがそれを助けることを願っています

public class Logging extends Activity implements SensorEventListener {

DecimalFormat df =new DecimalFormat("##.##");
public static final String file=("Project.txt");

Boolean flag=true;
FileOutputStream outputStream;


    TextView displayReading1;
    TextView displayReading2;
    TextView displayReading3;
    TextView displayReading4;

    @Override
    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_logging);
        Button start=(Button)findViewById(R.id.StartButton);
        Button stop=(Button)findViewById(R.id.StopButton);
        //BUTTON START
        start.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
             flag=true;

            }
        }); {


        }
        //BUTTON STOP
        stop.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
               flag=false;


            }
        });{

        }
        SensorManager sensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);
        Sensor accSensor = sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
        Sensor rotSensor = sensorManager.getDefaultSensor(Sensor.TYPE_ROTATION_VECTOR);
        Sensor gravitySensor = sensorManager.getDefaultSensor(Sensor.TYPE_GRAVITY);
        Sensor gyroSensor = sensorManager.getDefaultSensor((Sensor.TYPE_GYROSCOPE));
        sensorManager.registerListener(this, accSensor, 100000);
        sensorManager.registerListener(this, rotSensor, 100000);
        sensorManager.registerListener(this, gravitySensor, 100000);
        sensorManager.registerListener(this, gyroSensor, 100000);

        displayReading1 = (TextView) findViewById(R.id.acc_sensor);
        displayReading2 = (TextView) findViewById(R.id.rotational_sensor);
        displayReading3 = (TextView) findViewById(R.id.gravity_sensor);
        displayReading4 = (TextView) findViewById(R.id.gyro_sensor);

        displayReading1.setTextSize(14f);
        displayReading2.setTextSize(14f);
        displayReading3.setTextSize(14f);
        displayReading4.setTextSize(14f);

    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu_logging, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();

        //noinspection SimplifiableIfStatement
        if (id == R.id.action_settings) {
            return true;
        }

        return super.onOptionsItemSelected(item);
    }


    @Override
    public void onSensorChanged(SensorEvent event) {

            if (event.sensor.getType() == Sensor.TYPE_ACCELEROMETER)
                displayReading1.setText("Accelerometer (m/s2): " +"\nX"+" " +df.format(event.values[0]) + "\nY"+" " + df.format(event.values[1]) + "\nZ"+" " + df.format(event.values[2]));
                float X11=event.values[0];
                float X12=event.values[1];
                float X13=event.values[2];
        if( flag) {
            try {
                outputStream = openFileOutput(file, Context.MODE_PRIVATE);
                outputStream.write(("Accelerometer (m/s2): " + "\nX" + " " + df.format(X11) + "\nY" + " " + df.format(X12) + "\nZ" + " " + df.format(X13)
                ).getBytes());
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            } catch (IOException f) {
                System.out.println("Exception");

            }
        }
        if (event.sensor.getType() == Sensor.TYPE_ROTATION_VECTOR)
                displayReading2.setText("Rotational Vector: " + "\nX"+" " + df.format(event.values[0]) + "\nY"+" " + df.format(event.values[1]) + "\nZ"+" " + df.format(event.values[2]));
                float X21=event.values[0];
                float X22=event.values[1];
                float X23=event.values[2];
        if( flag) {
        try {
            outputStream=openFileOutput(file, Context.MODE_PRIVATE);
            outputStream.write(("Rotational Vector : " +"\nX"+" " +df.format(X21) + "\nY"+" " + df.format(X22) + "\nZ"+" " + df.format(X23)).getBytes());

        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException f) {
            System.out.println("Exception");

        }}
            if (event.sensor.getType() == Sensor.TYPE_GRAVITY)
                displayReading3.setText("Gravity (m/s2): " + "\nX"+" " + df.format(event.values[0]) + "\nY"+" " + df.format(event.values[1]) + "\nZ"+" " + df.format(event.values[2]));

            if (event.sensor.getType() == Sensor.TYPE_GYROSCOPE)
               displayReading4.setText("Gyroscope (rad/s): " + "\nX"+" " + df.format(event.values[0]) + "\nY"+" " + df.format(event.values[1]) + "\nZ"+" " + df.format(event.values[2]));
        float X31=event.values[0];
        float X32=event.values[1];
        float X33=event.values[2];

        if( flag) {
            try {
                outputStream = openFileOutput(file, Context.MODE_PRIVATE);
                outputStream.write(("Gyroscope (rad/s): " + "\nX" + " " + df.format(X31) + "\nY" + " " + df.format(X32) + "\nZ" + " " + df.format(X33)
                ).getBytes());

            } catch (FileNotFoundException e) {
                e.printStackTrace();
            } catch (IOException f) {
                System.out.println("Exception");

            }

        }
        if (!flag){
            try {
                outputStream.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }

        }



    @Override
    public void onAccuracyChanged(Sensor sensor, int accuracy) {

    }



}
4

1 に答える 1