【问题标题】:SD-Card-> Missing valueSD卡->缺失值
【发布时间】:2016-07-25 23:45:24
【问题描述】:

真的需要一些帮助。 一周以来,我一直在尝试将(原始)数据(字节)正确保存到我的 Android 手机的 SD 卡中。

手机通过蓝牙从微控制器获取数据。数据是由终端正确打印出来的,所以显然 Java-Code 是不正确的。

为了对此进行测试,变量(8 位)正在递增,在此步骤之后,变量的值将发送到手机。 当我用十六进制视图读出创建的文件时,有罪值之间有很多零(如果:μ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;
        }
    }
};

`

【问题讨论】:

    标签: android bluetooth filestream


    【解决方案1】:

    您没有从消息中提取数据。
    msg.getData.getByteArray("keyOfTheMessage");

    【讨论】:

    • 感谢您的回复。你确定,这就是问题所在?我的意思是创建这样的文件流还不够: byte[] readBuf = (byte[]) msg​​.obj; fOut.write(readBuf); fOut.flush(); fOut.close();如果没有,您能否解释一下为什么不这样做以及如何正确执行此操作,我使用 Android Studio 编程,我对这个 IDE 和 JAVA 非常陌生。以及如何将您的代码行粘贴到我的? -> keyOfMessage?
    • 向您的处理程序发送消息是什么?
    • µc 通过蓝牙(类:2.0)。 BLE:HC06(UART)。也许这是同一个问题:stackoverflow.com/questions/35157297/… ?
    • 只需阅读此信息:BLE/GATT 中的最大传输单元为 20 字节。那么,我只能接收 20 个字节并且必须拆分我的“流”吗?它是否正确?了解我做错了什么会对我有很大帮助。
    猜你喜欢
    • 2011-04-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-20
    • 1970-01-01
    • 1970-01-01
    • 2020-05-16
    • 1970-01-01
    相关资源
    最近更新 更多