Android Studio 蓝牙应用

标签 android android-studio bluetooth

我正在制作一个小应用程序,其中手机使用蓝牙协议(protocol)自动连接到某个设备,所以基本上我正在尝试这样做:

  • 我有一个已发现设备的列表。

  • 当用户点击列表中的任何元素(设备)时,手机应连接到“硬编码”的设备。

这是当用户点击列表时生成的事件:

public void onItemClick(AdapterView adapterView, View view, int i, long l) {
        //first cancel discovery because its very memory intensive.
        mBluetoothAdapter.cancelDiscovery();

        Log.d(TAG, "onItemClick: You Clicked on a device.");
        String deviceName = mBTDevices.get(i).getName();
        String deviceAddress = mBTDevices.get(i).getAddress();

        Log.d(TAG, "onItemClick: deviceName = " + deviceName);
        Log.d(TAG, "onItemClick: deviceAddress = " + deviceAddress); 

        if(Build.VERSION.SDK_INT > Build.VERSION_CODES.JELLY_BEAN_MR2) {
            Log.d(TAG, "Trying to pair with " + deviceName);
            <b>for (BluetoothDevice device: mBTDevices){
                if (device.equals("HTC")){
                    device.createBond();
                }
            }</b>

public class MainActivity extends AppCompatActivity implements AdapterView.OnItemClickListener{
    private static final String TAG = "MainActivity";

    BluetoothAdapter mBluetoothAdapter;
    Button btnEnableDisable_Discoverable;

    public ArrayList mBTDevices = new ArrayList();

    public DeviceListAdapter mDeviceListAdapter;

    ListView lvNewDevices;

我的问题是,我哪里弄错了?

for (BluetoothDevice device: mBTDevices){
    if (device.equals("HTC")){
        device.createBond();

因为应用程序没有按预期运行。更准确地说,当我点击列表中的设备时,我想自动与名称为“HTC”的设备建立联系,但没有任何反应。

最佳答案

尝试使用 device.getName().equals("HTC") 而不是 device.equals("HTC")

此时您的代码正在将 BluetoothDevice 类型的对象与字符串进行比较。因此,即使设备可用,您也不会获得匹配项,因此永远不会到达 device.createBond(); 行。

关于Android Studio 蓝牙应用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41894594/

相关文章:

android - 出现错误 : Access denied finding property "vendor.camera.aux.packagelist" on some devices

android-studio - 如何使用Android Studio将其他参数传递给自定义测试运行程序?

android - 允许不安全的协议(protocol),android gradle

ios - 从 iOS 应用检测附近的移动设备

ios - 如果一部 iphone 有两个同时传输 ibeacon 信号的应用程序,它们会相互竞争吗?

android - PreferenceManager.getDefaultSharedPreferences() 与 getPreferences()

Android 构建错误

android - 简单的 onListItemClick() 参数

android - 如何在android studio中实现水平评分条形图?

java - 通过蓝牙从 Java 服务器向 Android 客户端发送文本