2016-03-21 10 views
0

SeekBarスライダの値をブルートゥースとアンドロイドに送信する作業コードがあります。私はそれを読み取って加速度計の値をブルートゥースに送るように変更したいので、携帯電話を傾けてロボットを制御することができます。 Seekbarコードはうまく動作します。これをonCreateメソッドで置き換えました。 「明るさ」は、シークバーの名前です。これは、当面はledを制御しているためです。これで加速度計のデータをアンドロイドからブルートゥースのクラッシュアプ​​リに送信

brightness.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { 
     @Override 
     public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { 
      try { 
       btSocket.getOutputStream().write(String.valueOf(progress).getBytes()); 
      } catch (IOException e) { } 
     } 
     @Override 
     public void onStartTrackingTouch(SeekBar seekBar) { } 
     @Override 
     public void onStopTrackingTouch(SeekBar seekBar) { } 
    }); 

`別の方法

@Override 
public void onSensorChanged(SensorEvent event) { 
    int x = (int)((event.values[0]+9.8)*256/2/9.8); 
    accelText.setText(" X = " + x); 
    try { 
     btSocket.getOutputStream().write(String.valueOf(x).getBytes()); 
    } catch (IOException e) { 
      msg("error at btSocket"); 
    } 
} 

そしてもちろんのように私はのonCreateメソッドに適切な宣言を持っている:

sm = (SensorManager)getSystemService(SENSOR_SERVICE); 
    accelerometer = sm.getDefaultSensor(Sensor.TYPE_ACCELEROMETER); 
    sm.registerListener(this, accelerometer, SensorManager.SENSOR_DELAY_NORMAL); 

は罰金コンパイルします。それが実行されるとき、私は "残念なことに、アプリケーションが動作を停止した"メッセージを取得します。私がbtSocket行をコメントアウトすると、すべてが動作します(明らかにメッセージを送信することを除いて)。誰でも私が間違っていることを見てください。大変ありがとうございます。

+0

クラッシュが発生したときのlogcat出力は何ですか? – p2pkit

+0

03-23 15:13:37.158 17363-17363 /? I/dalvikvm:com.blogspot.drcodd.robotcontrol.RobotControl.onSensorChanged(RobotControl.java:141) 03-23 15:13:37.178 17363-17363 /? A/libc:0x000043d3(コード= -6)の致命的なシグナル6(SIGABRT)、スレッド17363(dd.robotcontrol) 03-23 15:13:37.278 26318-26318 /? I/DEBUG:pid:17363、tid:17363、名前:dd.robotcontrol >>> com.blogspot.drcodd.robotcontrol <<< 03-23 15:13:37.548 640-17552 /? W/ActivityManager:強制終了アクティビティcom.blogspot.drcodd.robotcontrol/.RobotControl –

答えて

0

マニフェストでBLUETOOTHの権限を設定していますか?その場合

<uses-permission android:name="android.permission.BLUETOOTH" /> 

たぶん、あなたは、例外メッセージは何だ、これも

<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/> 

が必要ですか?

+0

これはコメントです。 – ketan

+0

私は弁解をすることができません、私は新しいです。 – DonLeopardo

+0

はい、アクセス権があります。私はブルートゥースモジュールと接続し、オンとオフのボタンと私が参照しているシークバーとled(arduinoが関与している)を制御することができます。問題の原因となっているonSensorChangedメソッドの "btSocket.getOutputStream ..."という行だけです –

関連する問題