1

我在 Android 开发者网站上阅读了很多关于蓝牙的内容,但我无法理解一件事,我如何使用我在 ListView 中获得的他的 mac 地址与配对(或绑定)设备建立连接。只是为了看看我的代码是否有效(OnItemClickListner 部分),我使用一个按钮来显示 mac 地址。但我想做的是使用 OnItemClickListener 启动与所选设备的连接。(我希望我的解释清楚)

这是我的代码的至少一部分。 http://pastie.org/4591835

事情是我不知道如何使用 rfcomm 来做我想做的事。

有人可以向我解释一下吗?

我的代码的目的是将我的 android 手机连接到我的 Arduino 并通过一些按钮向它发送信件,例如:按钮 Led 1 将向我的 arduino 发送“A”等等。

提前致谢 !

    package com.jon.arduino.remote;

import java.util.Set;
import android.os.Bundle;
import android.app.Activity;
import android.bluetooth.BluetoothAdapter;
import android.bluetooth.BluetoothDevice;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ListView;
import android.widget.TextView;


public class NextActivity extends Activity {

    // Variables & constantes
    BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
    private ArrayAdapter<String> deviceslist;
    public static String EXTRA_DEVICE_ADDRESS = "device_address";





    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_device_list);
        setupUI();
        searchbtdevices();
    }


    /////////////////////////////////////////////////////////////////// 
    private void searchbtdevices() {


        Set<BluetoothDevice> pairedDevices = mBluetoothAdapter.getBondedDevices();
        // If there are paired devices
        if (pairedDevices.size() > 0) {
            // Loop through paired devices
            for (BluetoothDevice device : pairedDevices) {
                // Add the name and address to an array adapter to show in a ListView
                deviceslist.add(device.getName() + "\n" + device.getAddress());
                                                         }
                                        } 


                           }


    /////////////////////////////////////////////////////////////////// 
    /*private void connecttobt() 
    {


    }*/


    /////////////////////////////////////////////////////////////////// 
    private void setupUI() {


        final Button btnmacaddress = (Button) findViewById(R.id.btnmacaddress);
        final ListView bt_deviceslist = (ListView) findViewById(R.id.bt_deviceslist);
        deviceslist = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1);
        bt_deviceslist.setAdapter(deviceslist);


        bt_deviceslist.setOnItemClickListener(new AdapterView.OnItemClickListener() {
               public void onItemClick(AdapterView<?> list, View v, int pos, long id) {

                   mBluetoothAdapter.cancelDiscovery();
                   String info = ((TextView) v).getText().toString();

                        // Attempt to extract a MAC address
                        String macaddress = info.substring(info.length() - 17);

                        // Create the result Intent and include the MAC address
                        Intent intent = new Intent();
                        intent.putExtra(EXTRA_DEVICE_ADDRESS, macaddress);

                        mBluetoothAdapter.cancelDiscovery();
                    //  connecttobt();



                        btnmacaddress.setText(macaddress);
                                                                                    }});                
                            }
    ///////////////////////////////////////////////////////////////////                                                                                 
}
4

1 回答 1

2

我做了一些类似于你想做的事情,并且有两个例子可以在以下位置找到:

http://digitalhacksblog.blogspot.com/2012/05/arduino-to-android-basic-bluetooth.html

http://digitalhacksblog.blogspot.com/2012/05/arduino-to-android-turning-led-on-and.html

第一个示例展示了如何使用名为 BlueTerm 的程序将文本从 Android 发送到 Arduino。这显示了 Android 和 Arduino 进行通信的基本设置。

第二个示例是 Android 上的一个程序,它可以打开和关闭 Arduino 上的 LED。这显示了如何通过程序在两个设备之间进行通信。

这些示例包含 Android 和 Arduino 所需的所有代码。

希望这可以帮助。

于 2012-08-28T02:56:52.383 回答