0

调试蓝牙连接接收字符串等的代码。但是,似乎ClassCastException在代码行中得到了

String read_Message = (String) msg.obj;

但是,如果我要使用我之前的代码并收集字节并将其放入一个字符串中,则运行但不会在一个字符串中收集所有数据。

我是不是因为我知道我错过了一些东西但看不到它而没有投射一些东西或错过一些东西。

如果需要更多代码,我会放置,其他一切都在工作

谢谢你的帮助

     // The Handler that gets information back from the BluetoothService
    private final Handler mHandler = new Handler() {
        @Override
        public void handleMessage(Message msg) 
        {
            switch (msg.what)
            {
            case MESSAGE_STATE_CHANGE:
//              if (D) Log.i(TAG, "MESSAGE_STATE_CHANGE: " + msg.arg1);
                switch (msg.arg1) 
                {
                case BluetoothService.STATE_CONNECTED:
                    break;
                case BluetoothService.STATE_CONNECTING:
                    //mTitle.setText(R.string.title_connecting);
                    break;
                case BluetoothService.STATE_LISTEN:
                case BluetoothService.STATE_NONE:
                    //mTitle.setText(R.string.title_not_connected);
                    break;
                }
                break;
            case MESSAGE_WRITE:
                //code to be entered here
                break;
            case MESSAGE_READ:
                //Previous code
                //byte[] read_Buf = (byte[]) msg.obj;
                // construct a string from the valid bytes in the buffer
                //String read_Message = new String(read_Buf, 0, msg.arg1);

                String read_Message = (String) msg.obj;

                if (mSmokeReadingArrayAdapter.isEmpty())
                    mSmokeReadingArrayAdapter.add("");

                mAdapter_Text.set(0, mAdapter_Text.get(0).toString() + read_Message);  

                mSmokeReadingArrayAdapter.notifyDataSetChanged();

                organiseString(read_Message);
                break;
            case MESSAGE_DEVICE_NAME:
                //code to be entered here
                break;
            case MESSAGE_TOAST:
                Toast.makeText(getApplicationContext(), msg.getData().getString(TOAST), Toast.LENGTH_SHORT).show();     // shows 'alert' messages
                break;
            }
        }
    };
4

1 回答 1

0

问题解决了。这与定义为字节数组而不是字符串的蓝牙服务代码有关

于 2013-03-22T14:18:11.353 回答