###前提・実現したいこと
AndroidStudioでセンサーのログをcsvに変換してSDカードに記録するアプリケーションを作成しています。
###発生している問題・エラーメッセージ
ビルド時点ではエラーが発生しておらず,実機上でもセンサ情報が表示されているのですが,端末内のファイルを見てもcsvファイルが作成されておりません。
###該当のソースコード
lang
1import java.io.BufferedWriter; 2import java.io.FileNotFoundException; 3import java.io.FileOutputStream; 4import java.io.IOException; 5import java.io.OutputStreamWriter; 6import java.io.UnsupportedEncodingException; 7import java.util.Calendar; 8import java.util.List; 9 10import android.app.Activity; 11import android.hardware.Sensor; 12import android.hardware.SensorEvent; 13import android.hardware.SensorEventListener; 14import android.hardware.SensorManager; 15import android.os.Bundle; 16import android.widget.TextView; 17 18class sensorsd extends Activity implements SensorEventListener { 19 20 //センサーマネージャーのインスタンス 21 private SensorManager sensorManager; 22 23 @Override 24 public void onCreate(Bundle savedInstanceState) { 25 26 super.onCreate(savedInstanceState); 27 28 //センサーマネージャーのインスタンスを取得 29 sensorManager = (SensorManager)this.getSystemService(SENSOR_SERVICE); 30 31 setContentView(R.layout.activity_main); 32 } 33 34 @Override 35 protected void onResume() 36 { 37 super.onResume(); 38 List<Sensor>sensors = sensorManager.getSensorList(Sensor.TYPE_ALL); 39 //リスナーの登録 40 for(Sensor s : sensors) 41 { 42 sensorManager.registerListener(this,s,SensorManager.SENSOR_DELAY_NORMAL ); 43 } 44 } 45 @Override 46 public void onAccuracyChanged(Sensor sensor, int accuracy) { 47 48 } 49 @Override 50 public void onSensorChanged(SensorEvent e) 51 { Calendar time = Calendar.getInstance(); 52 int year = time.get(Calendar.YEAR); 53 54 int month = time.get(Calendar.MONTH); 55 56 int day = time.get(Calendar.DAY_OF_MONTH); 57 58 int hour = time.get(Calendar.HOUR_OF_DAY); 59 60 int minute = time.get(Calendar.MINUTE); 61 62 int second = time.get(Calendar.SECOND); 63 64 int ms = time.get(Calendar.MILLISECOND); 65 66 String nowtime = 67 String.valueOf(hour)+":"+String.valueOf(minute)+":"+String.valueOf(second)+":" 68 +String.valueOf(ms); 69 70 switch(e.sensor.getType()) 71 { 72 73 //加速度 74 case Sensor.TYPE_ACCELEROMETER: 75 { 76 77 String FILE = "/test.csv"; 78 try { 79 80 BufferedWriter bw = new BufferedWriter(new OutputStreamWriter( 81 new FileOutputStream(FILE, true), "UTF-8")); 82 String write_int = nowtime + "," + 83 String.valueOf(e.values[SensorManager.DATA_X])+"," + 84 String.valueOf(e.values[SensorManager.DATA_Y])+"," + 85 String.valueOf(e.values[SensorManager.DATA_Z])+"\n"; 86 bw.write(write_int); 87 bw.flush(); 88 bw.close(); 89 } catch (IOException k) { 90 k.printStackTrace(); 91 } 92 93 94 95 TextView x = (TextView)findViewById(R.id.x); 96 x.setText("x" + String.valueOf(e.values[SensorManager.DATA_X])); 97 TextView y = (TextView)findViewById(R.id.y); 98 y.setText("y" + String.valueOf(e.values[SensorManager.DATA_Y])); 99 TextView z = (TextView)findViewById(R.id.z); 100 z.setText("z" + String.valueOf(e.values[SensorManager.DATA_Z])); 101 break; 102 } 103 104 } 105 } 106 107 108 @Override 109 protected void onStop() 110 { 111 super.onStop(); 112 sensorManager.unregisterListener(this); 113 };
###試したこと
以前ご質問させていただいたことがあり,その際にご助言頂きました
・AndroidManifest.xmlへのuses-permissionの記述
は修正させていただいております。
###補足情報(言語/FW/ツール等のバージョンなど)
使用している実機:zenpad3 8.0(ASUS)(Android6.0.1)
繰り返しになってしまい申し訳ありませんがご助言いただけますと幸いです。
よろしくお願い致します。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/01/16 06:01