我在Android开发者网站上阅读了很多有关蓝牙的内容,但我无法理解一件事,我如何使用我在ListView中获得的mac地址与配对(或绑定)设备建立连接。 只是为了查看我的代码是否有效(OnItemClickListner部分),我使用一个按钮来显示mac地址。 但我想要做的是使用OnItemClickListener启动与所选设备的连接。 (我希望我的解释清楚)
这是我的代码至少有一部分。 http://pastie.org/4591835
事情是我不知道如何使用rfcomm thingy来做我想做的事。
有人可以向我解释一下吗?
我的代码的目的是将我的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);
}});
}
///////////////////////////////////////////////////////////////////
}
答案 0 :(得分: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所需的所有代码。
希望这有帮助。