2016-07-25 9 views
0

本当に助けが必要です。 Android携帯電話のSDカードにデータ(バイト)を正しく保存しようとしています。SD-Card->値がありません

モバイルは、マイクロコントローラからBluetooth経由でデータを取得します。データはターミナルによって正しく出力されるので、明らかにJavaコードは間違っています。

これをテストするために、変数(8ビット)がインクリメントされ、このステップの後に変数の値が電話に送信されます。 作成したファイルを16進表示で読み上げると、有罪値の間に0がたくさんあります(μCが何も送信していない場合)。そして何らかの理由で、多くの値が欠落している/おそらく年表間違っている。

節約一部:

h=new Handler() { 
    public void handleMessage (android.os.Message msg) { 
     switch (msg.what) { 
     case RECIEVE_MESSAGE: 
      byte[] readBuf = (byte[]) msg.obj; 
      String path = "/sdcard/" + dateipfad.getText().toString() + ".txt"; 
      Environment.getExternalStorageDirectory().getPath(); 

      try { 
       File myFile = new File(path); 
       myFile.createNewFile(); 
       FileOutputStream fOut = new FileOutputStream(myFile,true); 

       fOut.write(readBuf); 
       fOut.flush(); 
       fOut.close(); 
      } catch (Exception e) { 
       Toast.makeText(getBaseContext(), e.getMessage(), 
           Toast.LENGTH_SHORT).show(); 
      } 

      break; 
     } 
    } 
}; 

`

答えて

0

あなたがメッセージからデータを抽出していません。
msg.getData.getByteArray("keyOfTheMessage");

+0

ご返信ありがとうございます。 本当ですか、それは問題ですか? このようにファイルストリームを作成するだけでは不十分です。 [] readBuf =(byte [])msg.obj; fOut.write(readBuf); fOut.flush(); fOut.close(); もしそうでない場合は、私はAndroidスタジオでこの正しいIDEとJAVAの非常に新しいです、なぜ正しいとこれを行う方法を説明することができますか?あなたのコード行を私の中に貼り付けるには? - > keyOfMessage? – bandschuka

+0

ハンドラにメッセージを送信しているのは何ですか? Bluetooth経由の – confusedProgrammer

+0

μc(クラス:2.0)。 BLE:HC06(Uart)。 https://stackoverflow.com/questions/35157297/android-bluetooth-adapter-message-handler-buffer-limit : 多分それは同じ問題がありますか? – bandschuka

関連する問題