蓝牙一:蓝牙的简单使用,包括打开蓝牙和关闭蓝牙

蓝牙是android重要的通信设施,可以用于传输数据,与硬件进行交互的作用,比如小黄车,智能摄像头等等,未来将是android的一个重要的发展方向

看看效果图吧:

(1)首先我们使用蓝牙需要在清单文件里面进行注册

 <uses-permission android:name="android.permission.BLUETOOTH"/>
 <uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>

(2)我们写一个简单的布局,放置几个按钮,用于蓝牙的打开和关闭

<LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical" >

            <TextView
                android:id="@+id/textView1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/app_name"
                android:textAppearance="?android:attr/textAppearanceLarge" />

            <Button
                android:id="@+id/btn_on"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="打开蓝牙" />

            <Button
                android:id="@+id/btn_visible"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="使当前手机蓝牙可见" />

            <Button
                android:id="@+id/btn_list"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="蓝牙列表显示" />

            <Button
                android:id="@+id/btn_off"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="关闭蓝牙" />

            <ListView
                android:id="@+id/listView1"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:visibility="visible" >

            </ListView>

        </LinearLayout>

(3)在MainActivity调用系统蓝牙,打开和关闭蓝牙

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

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

public class MainActivity extends AppCompatActivity implements View.OnClickListener{
    //参考网址  https://www.yiibai.com/android/android_bluetooth.html
    private Button btn_on,btn_off,btn_visible,btn_list;
    private BluetoothAdapter bluetoothAdapter;
    private Set<BluetoothDevice> pairedDevices;
    private ListView lv;
    private List list;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        btn_on = (Button)findViewById(R.id.btn_on);
        btn_off = (Button)findViewById(R.id.btn_off);
        btn_visible = (Button)findViewById(R.id.btn_visible);
        btn_list = (Button)findViewById(R.id.btn_list);
        lv = (ListView)findViewById(R.id.listView1);

        //调用创建的对象的静态方法getDefaultAdapter()获取蓝牙对象
        bluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
        btn_on.setOnClickListener(this);
        btn_off.setOnClickListener(this);
        btn_visible.setOnClickListener(this);
        btn_list.setOnClickListener(this);
    }


    @Override
    public void onClick(View view) {
        switch (view.getId()){
            case R.id.btn_on:
                getOpen();
                break;
            case R.id.btn_off:
                getClose();
                break;
            case R.id.btn_visible:
                getView();
                break;
            case R.id.btn_list:
                getList();//显示蓝牙列表
                break;


        }
    }

    //蓝牙可见
    private void getView() {
        Intent getintent = new Intent(BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE);
        startActivityForResult(getintent,0);
    }

    //关闭蓝牙
    private void getClose() {
        bluetoothAdapter.disable();
        Toast.makeText(getApplicationContext(),"关闭蓝牙",Toast.LENGTH_SHORT).show();
    }

    //显示蓝牙列表
    private void getList() {
        //调用 getBondedDevices()方法来获取配对设备列表
        pairedDevices = bluetoothAdapter.getBondedDevices();
        list = new ArrayList();
        for (BluetoothDevice bt:pairedDevices){
            list.add(bt.getName());
        }
        Toast.makeText(getApplicationContext(),"显示配对设备",Toast.LENGTH_SHORT).show();
        ArrayAdapter adapter = new ArrayAdapter(this,android.R.layout.simple_list_item_1,list);
        lv.setAdapter(adapter);
    }

    private void getOpen() {
        //如果适配器已启用 此方法返回true
        if (!bluetoothAdapter.isEnabled()){
              //这里表示适配器未启动,使用intent启动蓝牙
            Intent turnon = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
            startActivityForResult(turnon,0);
            Toast.makeText(getApplicationContext(),"打开蓝牙",Toast.LENGTH_SHORT).show();
        }else{
            Toast.makeText(getApplicationContext(),"蓝牙已经打开",Toast.LENGTH_SHORT).show();
        }
    }


}

猜你喜欢

转载自blog.csdn.net/cf8833/article/details/82018219
今日推荐