2016-05-24 2 views
0

に書いていません。ファイルが作成または書き込まれていないことを除いて、すべてうまく動作しているようです。私はそれを把握していないようだ。ファイルは、私は、ファイルにオーディオスパイクと加速度計の測定値を記録するため、以下のこのコードを持っているアンドロイド

ご協力いただければ幸いです。ここで

public class Main extends Activity implements SensorEventListener { 

    private SensorManager mSensorManager; 
    private Sensor mAccelerometer; 
    private MediaRecorder recorder = new MediaRecorder(); 

    private File accel; 
    private File audio; 
    private File audiodump; 

    private FileWriter accelwriter; 
    private FileWriter audiowriter; 




    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     String root = Environment.getExternalStorageDirectory().getAbsolutePath(); 
     accel = new File(root,"accel.txt"); 
     audio = new File(root,"audio.txt"); 
     audiodump = new File(root,"audiodump.aac"); 

     recorder.setAudioSource(MediaRecorder.AudioSource.MIC); 
     recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP); 
     recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB); 
     recorder.setOutputFile(audiodump.getPath()); 

     setContentView(R.layout.activity_main); 

     mSensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE); 
     mAccelerometer = mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER); 
    } 

    public void onStartClick(View view) { 
     mSensorManager.registerListener(this, mAccelerometer, SensorManager.SENSOR_DELAY_NORMAL); 
    } 

    public void onStopClick(View view) { 
     mSensorManager.unregisterListener(this); 
    } 
    protected void onResume() { 
     super.onResume(); 
     try { 
      accelwriter = new FileWriter(accel, true); 
      audiowriter = new FileWriter(audio, true); 
      recorder.prepare(); 
      recorder.start(); 
     } catch(IOException e) { 
      e.printStackTrace(); 
     } 
    } 

    protected void onPause() { 
     super.onPause(); 
     try { 
      recorder.stop(); 
      recorder.release(); 

      if (accelwriter != null) { 
       accelwriter.close(); 
      } 
      if (audiowriter!= null) { 
       audiowriter.close(); 
      } 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 

    } 

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

    } 

    @Override 
    public void onSensorChanged(SensorEvent event) { 

     String time = String.valueOf(System.currentTimeMillis()); 
     String amplitude = String.valueOf(recorder.getMaxAmplitude()); 

     float x = event.values[0]; 
     float y = event.values[1]; 
     float z = event.values[2]; 

     try { 
      audiowriter.write(time+amplitude+"\n"); 
      accelwriter.write(time+x+","+y+","+z+"\n"); 
     } catch (IOException e) { 
     e.printStackTrace(); 
     } 

    } 
} 

はマニフェストです:

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="ross.pieter.pieterfinal"> 
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
    <uses-permission android:name="android.permission.RECORD_AUDIO" /> 

    <application 
     android:allowBackup="true" 
     android:icon="@mipmap/ic_launcher" 
     android:label="@string/app_name" 
     android:supportsRtl="true" 
     android:theme="@style/AppTheme"> 
     <activity android:name=".Main"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
    </application> 

</manifest> 

ここでlogcatです:

05-24 09:22:19.924 3229-3229/ross.pieter.pieterfinal W/System: ClassLoader referenced unknown path: /data/app/ross.pieter.pieterfinal-1/lib/x86 
05-24 09:22:20.105 3229-3264/ross.pieter.pieterfinal D/OpenGLRenderer: Use EGL_SWAP_BEHAVIOR_PRESERVED: true 
05-24 09:22:20.151 3229-3264/ross.pieter.pieterfinal I/OpenGLRenderer: Initialized EGL, version 1.4 
05-24 09:22:55.116 3229-3229/ross.pieter.pieterfinal W/MediaRecorder: mediarecorder went away with unhandled events 
05-24 09:22:55.329 3229-3264/ross.pieter.pieterfinal E/Surface: getSlotFromBufferLocked: unknown buffer: 0xb4053500 
05-24 09:23:30.989 3229-3235/ross.pieter.pieterfinal W/art: Suspending all threads took: 5.202ms 
05-24 09:29:04.529 32274-32274/ross.pieter.pieterfinal I/art: Late-enabling -Xcheck:jni 
05-24 09:29:04.529 32274-32274/ross.pieter.pieterfinal I/art: VMHOOK: rlim_cur : 0 pid:32274 
05-24 09:29:04.603 32274-32274/ross.pieter.pieterfinal W/System: ClassLoader referenced unknown path: /data/app/ross.pieter.pieterfinal-2/lib/arm 
05-24 09:29:05.120 32274-32274/ross.pieter.pieterfinal W/System: ClassLoader referenced unknown path: /data/app/ross.pieter.pieterfinal-2/lib/arm 
05-24 09:29:05.220 32274-32274/ross.pieter.pieterfinal D/MediaRecorder: Current Package Name: ross.pieter.pieterfinal 
05-24 09:29:05.259 32274-32274/ross.pieter.pieterfinal E/SensorManager: uid = 10042 
05-24 09:29:05.261 32274-32274/ross.pieter.pieterfinal D/MediaRecorder: getMaxAllowedFileSizeByPath 
05-24 09:29:05.263 32274-32274/ross.pieter.pieterfinal D/MediaRecorder: no match storage volume found! 
05-24 09:29:05.382 32274-32324/ross.pieter.pieterfinal I/Adreno-EGL: <qeglDrvAPI_eglInitialize:379>: EGL 1.4 QUALCOMM build: Nondeterministic_AU_msm8974_LA.BF.1.1.3__release_AU (I3fa967cfef) 
                    OpenGL ES Shader Compiler Version: E031.28.00.02 
                    Build Date: 09/29/15 Tue 
                    Local Branch: mybranch14683032 
                    Remote Branch: quic/master 
                    Local Patches: NONE 
                    Reconstruct Branch: NOTHING 
05-24 09:29:06.633 32274-32274/ross.pieter.pieterfinal I/SensorManager: registerListenerImpl: listener = [email protected], sensor = {Sensor name="Accelerometer Sensor", vendor="HTC Group Ltd.", version=1, type=1, maxRange=19.6133, resolution=0.01, power=0.17, minDelay=10000}, delay = 200000, handler = null 
05-24 09:29:09.490 32274-32274/ross.pieter.pieterfinal I/SensorManager: unregisterListenerImpl++: listener = [email protected] 
05-24 09:29:10.367 32274-32274/ross.pieter.pieterfinal I/SensorManager: registerListenerImpl: listener = [email protected], sensor = {Sensor name="Accelerometer Sensor", vendor="HTC Group Ltd.", version=1, type=1, maxRange=19.6133, resolution=0.01, power=0.17, minDelay=10000}, delay = 200000, handler = null 
05-24 09:29:12.437 32274-32274/ross.pieter.pieterfinal I/SensorManager: unregisterListenerImpl++: listener = [email protected] 
05-24 09:29:12.809 32274-32274/ross.pieter.pieterfinal I/SensorManager: registerListenerImpl: listener = [email protected], sensor = {Sensor name="Accelerometer Sensor", vendor="HTC Group Ltd.", version=1, type=1, maxRange=19.6133, resolution=0.01, power=0.17, minDelay=10000}, delay = 200000, handler = null 
05-24 09:29:13.215 32274-32274/ross.pieter.pieterfinal I/SensorManager: unregisterListenerImpl++: listener = [email protected] 
05-24 09:29:13.614 32274-32274/ross.pieter.pieterfinal I/SensorManager: registerListenerImpl: listener = [email protected], sensor = {Sensor name="Accelerometer Sensor", vendor="HTC Group Ltd.", version=1, type=1, maxRange=19.6133, resolution=0.01, power=0.17, minDelay=10000}, delay = 200000, handler = null 
05-24 09:29:13.986 32274-32274/ross.pieter.pieterfinal I/SensorManager: unregisterListenerImpl++: listener = [email protected] 
05-24 09:29:14.340 32274-32274/ross.pieter.pieterfinal I/SensorManager: registerListenerImpl: listener = [email protected], sensor = {Sensor name="Accelerometer Sensor", vendor="HTC Group Ltd.", version=1, type=1, maxRange=19.6133, resolution=0.01, power=0.17, minDelay=10000}, delay = 200000, handler = null 
+0

を、これは例外をスローしていますか? –

+0

マニフェストにはどのような権限がありますか?あなたはlogcatで何を見ていますか? – Maks

+0

あなたが追加し忘れている可能性が '<アンドロイド許可使用しています:名=「android.permission.WRITE_EXTERNAL_STORAGE」/>'マニフェストへ。 –

答えて

関連する問題