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

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

新規登録して質問してみよう
ただいま回答率
85.51%
CSV

CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Android Studio

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

Q&A

解決済

1回答

3465閲覧

センサ情報をCSVに変換して保存したい

kenzoo1993

総合スコア12

CSV

CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Android Studio

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

0グッド

0クリップ

投稿2017/01/16 04:23

編集2017/01/16 06:00

###前提・実現したいこと
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)

繰り返しになってしまい申し訳ありませんがご助言いただけますと幸いです。
よろしくお願い致します。

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

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

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

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

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

guest

回答1

0

ベストアンサー

端末の設定→アプリ→あなたのアプリ→権限を確認してください。
権限が与えられているかを確認してください。

また、コードはコード用の記述に修正してください。

投稿2017/01/16 05:25

yona

総合スコア18155

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

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

kenzoo1993

2017/01/16 06:01

権限を承認したところ解決しました。 また,コードを修正致しました。ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.51%

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

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

質問する

関連した質問