我在 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);
}});
}
///////////////////////////////////////////////////////////////////
}