簡體   English   中英

連接藍牙設備

[英]Connecting a Bluetooth Device

package com.example.stef.bluetooth_version1000;

import android.bluetooth.BluetoothAdapter;
import android.bluetooth.BluetoothDevice;
import android.content.Intent;
import android.os.Handler;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;

import java.util.ArrayList;
import java.util.List;
import java.util.Set;

public class MainActivity extends AppCompatActivity {
private int REQUEST_ENABLE_BT=1;
   private  ArrayList<String> devices;
   private List<BluetoothDevice> list;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        final Handler handler=null;

        /*Creation des objets Bluetooth*/
        BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
        if (mBluetoothAdapter == null) {
            // Device doesn't support Bluetooth
        }
        if (!mBluetoothAdapter.isEnabled()) {
            Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
            startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT);
        }
        ListView lv=(ListView)findViewById(R.id.listview);

        final Set<BluetoothDevice> pairedDevices = mBluetoothAdapter.getBondedDevices();

        ArrayList<String> devices = new ArrayList<>();
        for (BluetoothDevice bt : pairedDevices) {
            devices.add(bt.getName() + "\n" + bt.getAddress());
        }

        final ArrayAdapter arrayAdapter = new ArrayAdapter(MainActivity.this, android.R.layout.simple_list_item_1, devices);
        lv.setAdapter(arrayAdapter);


        final BluetoothChatService bluetoothChatService= new BluetoothChatService(MainActivity.this,handler);


        lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {

                bluetoothChatService.start();
                bluetoothChatService.connect();
            }
        });

    }
}

我的函數連接需要一個BluetoothDevice參數。
我希望能夠從ListView onClick()獲取它,但是我只能設法獲得一個名稱或地址。

看來我需要從“配對設備”中獲取藍牙設備。
我正在使用ConnectionChatService.java類。

您有一個僅讀取字符串的原始適配器

實際上將藍牙設備列表存儲在自定義適配器中

從自定義類開始

public class BluetoothArrayAdapter extends ArrayAdapter<BluetoothDevice> {
    // implement getView 

然后,您可以使用它,例如,在Click偵聽器中將其放置在被單擊的位置

final BluetoothArrayAdapter arrayAdapter = new BluetoothArrayAdapter(MainActivity.this, R.layout.your_bluetooth_layout);
arrayAdapter.addAll(mBluetoothAdapter.getBondedDevices());
lv.setAdapter(arrayAdapter);

lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {

            bluetoothChatService.start();
            bluetoothChatService.connect(arrayAdapter.getItem(i));
        }
    });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM