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

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

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

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

Android

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

Android Studio

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

Q&A

0回答

1484閲覧

加速度,ジャイロセンサー,GPSの値と9つ用意したボタンのどれを押したかをCSVで表示する

Horin

総合スコア9

Java

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

Android

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

Android Studio

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

0グッド

1クリップ

投稿2017/01/11 06:27

加速度,ジャイロセンサー,GPSの値と9つ用意!したボタンのどれを押したかをCSVで表示します。
各センサーの値は書き出せるのですがボタンが最初に定義した‐1から変化しません。
加速度,ジャイロセンサー,ボタン番号を書き出したファイルなのですが以下のようになってしまいます。
ボタンに関する文をいろいろな場所に入れてみましたがうまくいきません。

イメージ説明

java

1 2public class MainActivity extends AppCompatActivity { 3 4 5 private String sdPath2 = Environment.getExternalStorageDirectory() + "/sdcard/ag05.csv"; 6 7 private final int REQUEST_PERMISSION = 10; 8 private SensorEventListener sensorEventListener; 9 private SensorManager sensorManager; 10 private float[] aValues = new float[3]; 11 private float[] gValues = new float[3]; 12 13 Sensor Accele; 14 Sensor Gyro; 15 public int button_flag = -1; 16 17 @Override 18 protected void onCreate(Bundle savedInstanceState) { 19 super.onCreate(savedInstanceState); 20 setContentView(R.layout.activity_main); 21 Log.d("MainActivity", "onCreate()"); 22 23 sensorEventListener = new SensorEventListenerImpl(); 24 25 26 27 28 if (Build.VERSION.SDK_INT >= 23) { 29 checkPermission(); 30 } else { 31 locationActivity(); 32 } 33 34 35 } 36 37 // 位置情報許可の確認 38 public void checkPermission() { 39 // 既に許可している 40 if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED) { 41 locationActivity(); 42 } 43 // 拒否していた場合 44 else { 45 requestLocationPermission(); 46 } 47 } 48 49 // 許可を求める 50 private void requestLocationPermission() { 51 if (ActivityCompat.shouldShowRequestPermissionRationale(this, 52 Manifest.permission.ACCESS_FINE_LOCATION)) { 53 ActivityCompat.requestPermissions(MainActivity.this, 54 new String[]{Manifest.permission.ACCESS_FINE_LOCATION}, REQUEST_PERMISSION); 55 56 57 } else { 58 Toast toast = Toast.makeText(this, "許可されないとアプリが実行できません", Toast.LENGTH_SHORT); 59 toast.show(); 60 61 ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.ACCESS_FINE_LOCATION,}, REQUEST_PERMISSION); 62 63 } 64 } 65 66 // 結果の受け取り 67 @Override 68 public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) { 69 if (requestCode == REQUEST_PERMISSION) { 70 // 使用が許可された 71 if (grantResults[0] == PackageManager.PERMISSION_GRANTED) { 72 locationActivity(); 73 return; 74 75 } else { 76 // それでも拒否された時の対応 77 Toast toast = Toast.makeText(this, "これ以上なにもできません", Toast.LENGTH_SHORT); 78 toast.show(); 79 } 80 } 81 } 82 83 // Intent でLocation 84 private void locationActivity() { 85 Intent intent = new Intent(getApplication(), LocationActivity.class); 86 startActivity(intent); 87 } 88 89 class SensorEventListenerImpl implements SensorEventListener { 90 91 public SensorEventListenerImpl() { 92 sensorManager = (SensorManager) getSystemService(SENSOR_SERVICE); 93 //List<Sensor> a_sensors = sensorManager.getSensorList(Sensor.TYPE_ALL); 94 //加速度 95 Accele = sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER); 96 sensorManager.registerListener(this, Accele, SensorManager.SENSOR_DELAY_UI); 97 //ジャイロ 98 Gyro = sensorManager.getDefaultSensor(Sensor.TYPE_GYROSCOPE); 99 sensorManager.registerListener(this, Gyro, SensorManager.SENSOR_DELAY_UI); 100 } 101 102 @Override 103 public void onSensorChanged(SensorEvent e) { 104 105 //ボタンの定義 106 Button button_speed = (Button) findViewById(R.id.speed); 107 Button button_distance = (Button) findViewById(R.id.distance); 108 Button button_time = (Button) findViewById(R.id.time); 109 Button button_heart = (Button) findViewById(R.id.heart); 110 Button button_inclination = (Button) findViewById(R.id.inclination); 111 Button button_high = (Button) findViewById(R.id.high); 112 Button button_cadence = (Button) findViewById(R.id.cadence); 113 Button button_calorie = (Button) findViewById(R.id.calorie); 114 Button button_etc = (Button) findViewById(R.id.etc); 115 button_speed.setOnClickListener(new View.OnClickListener() { 116 @Override 117 public void onClick(View v) { 118 button_flag = 8; 119 } 120 121 }); 122 button_distance.setOnClickListener(new View.OnClickListener() { 123 @Override 124 public void onClick(View v) { 125 button_flag = 7; 126 } 127 }); 128 button_time.setOnClickListener(new View.OnClickListener() { 129 @Override 130 public void onClick(View v) { 131 button_flag = 6; 132 } 133 }); 134 button_heart.setOnClickListener(new View.OnClickListener() { 135 @Override 136 public void onClick(View v) { 137 button_flag = 5; 138 } 139 }); 140 button_inclination.setOnClickListener(new View.OnClickListener() { 141 @Override 142 public void onClick(View v) { 143 button_flag = 4; 144 } 145 }); 146 button_high.setOnClickListener(new View.OnClickListener() { 147 @Override 148 public void onClick(View v) { 149 button_flag = 3; 150 } 151 }); 152 button_cadence.setOnClickListener(new View.OnClickListener() { 153 @Override 154 public void onClick(View v) { 155 button_flag = 2; 156 } 157 }); 158 button_calorie.setOnClickListener(new View.OnClickListener() { 159 @Override 160 public void onClick(View v) { 161 button_flag = 1; 162 } 163 }); 164 button_etc.setOnClickListener(new View.OnClickListener() { 165 @Override 166 public void onClick(View v) { 167 button_flag = 0; 168 } 169 }); 170 171 172 //時間 173 Calendar time = Calendar.getInstance(); 174 int year = time.get(time.YEAR); 175 int month = time.get(time.MONTH); 176 int day = time.get(time.DAY_OF_MONTH); 177 int hour = time.get(time.HOUR_OF_DAY); 178 int minute = time.get(time.MINUTE); 179 int second = time.get(time.SECOND); 180 int ms = time.get(time.MILLISECOND); 181 182 String nowtime = String.valueOf(hour) + ";" + String.valueOf(minute) + ";" + String.valueOf(second) + ";" + String.valueOf(ms); 183 184 185 switch (e.sensor.getType()) { 186 187 //加速度 188 case Sensor.TYPE_ACCELEROMETER: 189 190 aValues[0] = (e.values[0]); 191 aValues[1] = (e.values[1]); 192 aValues[2] = (e.values[2]); 193 break; 194 195 case Sensor.TYPE_GYROSCOPE: 196 gValues[0] = (e.values[0]); 197 gValues[1] = (e.values[1]); 198 gValues[2] = (e.values[2]); 199 break; 200 } 201 202 String FILE; 203 FILE = "/sdcard/ag05.csv"; 204 try { 205 BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(FILE, true), "UTF-8")); 206 String write_int = nowtime + 207 ",acceleration" + "," + 208 String.valueOf(aValues[0]) + "," + 209 String.valueOf(aValues[1]) + "," + 210 String.valueOf(aValues[2]) + "," + 211 ",gyro" + "," + 212 String.valueOf(gValues[0]) + "," + 213 String.valueOf(gValues[1]) + "," + 214 String.valueOf(gValues[2])+","+ ",flag" + 215 String.valueOf(button_flag) + "/n"; 216 bw.write(write_int); 217 bw.newLine(); 218 bw.close(); 219 220 } catch (UnsupportedEncodingException k) { 221 k.printStackTrace(); 222 } catch (FileNotFoundException k) { 223 k.printStackTrace(); 224 } catch (IOException k) { 225 k.printStackTrace(); 226 } 227 228 229 } 230 231 232 @Override 233 public void onAccuracyChanged(Sensor sensor, int accuracy) { 234 // TODO Auto-generated method stub 235 } 236 237 238 239 } 240 241 242} 243

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

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

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

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

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

ozwk

2017/01/13 06:46

とりあえず//ボタンの定義~setOnClickListener()はonCreate()内でいいと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問