質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

Q&A

0回答

809閲覧

Android StudioでのCSV出力

退会済みユーザー

退会済みユーザー

総合スコア0

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

0グッド

1クリップ

投稿2019/08/16 08:22

編集2019/08/17 06:31

前提・実現したいこと

加速度センサからの値をCSVファイルに出力したいのですが表示されません.
スマホを持って歩いた時の加速度を取得して,再度PCに繋げた時にCSVファイルが出力されるようにしたいです.

アプリも正常に動くため間違っている箇所がわからなくて困っています.

発生している問題・エラーメッセージ

エラーメッセージ

08-17 15:11:33.518 1750-15246/? E/ctxmgr: [BaseServerTask]Failed network request due to no network connectivity:
08-17 15:11:33.524 1750-15246/? E/ctxmgr: [SyncServerInterestRecordsOperation]Failed WriteInterestRecord: network status=1
08-17 15:11:35.796 748-851/? E/WifiConfigStore: rewrite network history for "SRAS-WPA"WPA_EAP
08-17 15:11:41.468 1750-15663/? E/ctxmgr: [BaseServerTask]Failed network request due to no network connectivity:
08-17 15:11:41.498 1750-15663/? E/ctxmgr: [SyncServerInterestRecordsOperation]Failed WriteInterestRecord: network status=1

### 該当のソースコード `````ここに言語を入力 コード ```java package com.example.sensor1; import android.app.Activity; import android.content.pm.ActivityInfo; import android.graphics.Color; import android.hardware.Sensor; import android.hardware.SensorEvent; import android.hardware.SensorEventListener; import android.hardware.SensorManager; import android.os.Bundle; import android.os.Environment; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.TextView; import com.github.mikephil.charting.charts.LineChart; import com.github.mikephil.charting.data.Entry; import com.github.mikephil.charting.data.LineData; import com.github.mikephil.charting.data.LineDataSet; import com.github.mikephil.charting.interfaces.datasets.ILineDataSet; import java.io.BufferedWriter; import java.io.FileWriter; import java.io.IOException; import java.io.PrintWriter; import java.util.Calendar; import java.util.Locale; public class MainActivity extends Activity implements SensorEventListener , View.OnClickListener{ private SensorManager sensorManager; private Sensor accel; private TextView TextView; private LineChart mChart; private String[] labels = new String[]{ "X軸", "Y軸", "Z軸"}; private int[] colors = new int[]{ Color.MAGENTA, Color.BLUE, Color.GRAY}; private boolean LineData = true; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 縦画面固定 setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); // Get an instance of the SensorManager sensorManager = (SensorManager) getSystemService(SENSOR_SERVICE); // Get an instance of the TextView TextView = findViewById(R.id.text_view); mChart = findViewById(R.id.chart); // インスタンス生成 mChart.setData(new LineData()); // no description text mChart.getDescription().setEnabled(false); // Grid背景色 mChart.setDrawGridBackground(true); // 右側の目盛り mChart.getAxisRight().setEnabled(false); Button buttonStart = findViewById(R.id.button_start); buttonStart.setOnClickListener(this); Button buttonStop = findViewById(R.id.button_stop); buttonStop.setOnClickListener(this); Button buttonChange = findViewById(R.id.button_change); buttonChange.setOnClickListener(this); } @Override public void onClick(View view) { switch (view.getId()) { case R.id.button_start: sensorManager.registerListener(this,accel, SensorManager.SENSOR_DELAY_NORMAL); break; case R.id.button_stop: sensorManager.unregisterListener(this); break; case R.id.button_change: LineData = !LineData; break; } try{ //出力先の指定 FileWriter fw = new FileWriter(Environment.getExternalStorageDirectory().getPath()+"/test.csv",false); PrintWriter pw = new PrintWriter(new BufferedWriter(fw)); pw.close(); } catch (IOException ex){ } } @Override protected void onResume() { super.onResume(); // Listenerの登録 Sensor accel = sensorManager.getDefaultSensor( Sensor.TYPE_ACCELEROMETER); sensorManager.registerListener(this, accel, SensorManager.SENSOR_DELAY_NORMAL); } // 解除するコードも入れる! @Override protected void onPause() { super.onPause(); // Listenerを解除 sensorManager.unregisterListener(this); } private float x,y,z = 0.0f; public void onSensorChanged(SensorEvent event) { float FilterValues[] = new float[3]; final float alpha = 0.9f; if (event.sensor.getType() == Sensor.TYPE_ACCELEROMETER) { FilterValues[0] = FilterValues[0] * alpha + event.values[0] * (1 - alpha); FilterValues[1] = FilterValues[1] * alpha + event.values[1] * (1 - alpha); FilterValues[2] = FilterValues[2] * alpha + event.values[2] * (1 - alpha); String strTmp = "加速度センサー\n" + " X: " + FilterValues[0] + "\n" + " Y: " + FilterValues[1] + "\n" + " Z: " + FilterValues[2]; TextView.setText(strTmp); String accelerate; if (!LineData) { accelerate = String.format(Locale.US, "X: %.3f\nY: %.3f\nZ: %.3f\n", event.values[0], event.values[1], event.values[2]); } else { accelerate = String.format(Locale.US, "X: %.3f\nY: %.3f\nZ: %.3f\n", //\nで改行 FilterValues[0], FilterValues[1], FilterValues[2]); } TextView.setText(accelerate); //グラフ作成 LineData data = mChart.getLineData(); if (data != null) { for (int i = 0; i < 3; i++) { // 3軸なのでそれぞれ処理 ILineDataSet set3 = data.getDataSetByIndex(i); if (set3 == null) { LineDataSet set; // ILineDataSetの初期化(別メソッド) set = new LineDataSet(null, labels[i]); set.setLineWidth(2.0f); set.setColor(colors[i]); set.setDrawCircles(false); set.setDrawValues(false); set3 = set; data.addDataSet(set3); } //データのアップデート if (!LineData) { data.addEntry(new Entry(set3.getEntryCount(), event.values[i]), i); } else { data.addEntry(new Entry(set3.getEntryCount(), FilterValues[i]), i); } } mChart.notifyDataSetChanged(); // 表示の更新のために変更を通知する mChart.setVisibleXRangeMaximum(50); // 表示の幅を決定する mChart.moveViewToX(data.getEntryCount()); // 最新のデータまで表示を移動させる } } Log.d("SENSOR_DATA", "TYPE_ACCELEROMETER = " + String.valueOf(event.values[0]) + String.valueOf(event.values[1]) + String.valueOf(event.values[2])); Log.d("SENSOR_DATA", "TYPE_ACCELEROMETER = " + String.valueOf(FilterValues[0]) + String.valueOf(FilterValues[1]) + String.valueOf(FilterValues[2])); } { Calendar time = Calendar.getInstance(); int year = time.get(Calendar.YEAR); int month = time.get(Calendar.MONTH); int day = time.get(Calendar.DAY_OF_MONTH); int hour = time.get(Calendar.HOUR_OF_DAY); int minute = time.get(Calendar.MINUTE); int second = time.get(Calendar.SECOND); int ms = time.get(Calendar.MILLISECOND); String nowtime = String.valueOf(hour) + ":" + String.valueOf(minute) + ":" + String.valueOf(second) + ":" + String.valueOf(ms); } @Override public void onAccuracyChanged(Sensor sensor, int accuracy) { }

試したこと

ここに問題に対して試したことを記載してください。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

keicha_hrs

2019/08/16 13:37

ファイル出力したつもりの処理は、ご提示のコードのどこに存在するのでしょうか?
keicha_hrs

2019/08/16 13:41

それから、ソースコードは ```java public class Sample { } ``` のように、```の行で上下を挟んでください。そうすることでソースコード用の修飾がかかり、字下げ表示もされるようになります。すべて左詰めの状態では非常に見づらいです。
jimbe

2019/08/16 15:27

> 加速度センサからの値をCSVファイルに出力したいのですが一向に表示されません. この文の意味が分かり難いのですが, 加速度センサの値を CSV ファイルに出力したいのですか? それとも, ファイルに出力した上でそのファイルの内容を表示したいのでしょうか. >(Logcatに表示されるんですよね,,?) どういう意味でしょう. 仕様の確認でしたら, 仕様を決めた方にお聞きするべきかと思います.
退会済みユーザー

退会済みユーザー

2019/08/17 06:36

別のプログラムを載せてしまっていました.失礼致しました. また書式も変更させていただきました. 一度PCから接続を切って,スマホを持って歩き,再度PCに接続したときに歩行時に取得した加速度の値をcsvに出力したいと考えています.
jimbe

2019/08/18 08:50

keicha_hrs さんが仰っている通り, ファイルへの出力が見当たりません.
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問