如何通过蓝牙从另一个活动发送字符串

时间:2018-11-05 13:19:02

标签: java android-studio bluetooth

所以这是我的问题:我制作了一个需要通过蓝牙发送字符串的应用程序,该字符串是微调器中数据的集合。 微调框位于MainActivity中,在该处使用数据库中的信息进行填充,在另一个名为BtActivity的活动中,我得到了一个简单的BluetoothChat。 我正在尝试做的是使微调器的信息(我输入到String中)通过蓝牙发送,但是由于它是另一项活动,所以我不知道该怎么做。如果可能的话,最好是从MainActivity发送字符串。

MainActivity重要代码:

buttonSend.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {

            /*
            Collector of Pills
            */

            String shower = "";

            ArrayList<PillVO> list = PillVO.getPills(spinner.getSelectedItem().toString());

            for (PillVO p : list) {

                shower += p.getModulo() + ", " + p.getHorario() + "; ";

            }

/* This is the idea that I got for sending it

            BtActivity bta = new BtActivity();

            bta.SendMessageFromMain(shower);
*/
        }


    });

    loadSpinnerData();
} /// on create finishes

BtActivity重要代码:

    public void SendMessage() {
    byte[] bytes = text.toString().getBytes(Charset.defaultCharset());
    Log.d(TAG, "SendMessage: "+ bytes);
    messages.setText(text.getText().toString());

    mConnectedThread.write(bytes);
}

/* Idea

public void SendMessageFromMain(String lolo) {
    byte[] bytes = lolo.toString().getBytes(Charset.defaultCharset());
    Log.d(TAG, "SendMessage: "+ bytes);
    messages.setText(text.getText().toString());

    mConnectedThread.write(bytes);
}
*/

1 个答案:

答案 0 :(得分:0)

只需通过意图将字符串发送到BtActivity

在您的MainActivity

buttonSend.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {

            /*
            Collector of Pills
            */

            String shower = "";

            ArrayList<PillVO> list = PillVO.getPills(spinner.getSelectedItem().toString());

            for (PillVO p : list) {

                shower += p.getModulo() + ", " + p.getHorario() + "; ";

            }

                    Intent intent = new Intent(MainActivity.this, BtActivity.class);
                    intent.putExtra("shower", shower);
                    startActivity(intent);
        }


    });

BtActivity中,您只得到像这样的字符串

Bundle bundle = getIntent().getExtras();
String message = bundle.getString("shower");

mConnectedThread.write(message.getBytes());