Android 获取本地蓝牙设备

本文介绍Android中蓝牙的基本操作

  1. 检测本地是否有蓝牙设备
  2. 获取远程蓝牙设备的地址

MainActivity中一个Button,单击Button打开蓝牙设备

package com.zhoucj.bluetooh;

import java.util.Iterator;
import java.util.Set;

import android.app.Activity;
import android.bluetooth.BluetoothAdapter;
import android.bluetooth.BluetoothDevice;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class MainActivity extends Activity {

    private Button blueBtn;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        blueBtn=(Button)findViewById(R.id.open_bluetooh);
        blueBtn.setOnClickListener(listener);
        
    }

    
    private OnClickListener listener=new OnClickListener() {
        @Override
        public void onClick(View arg0) {
            //得到本地蓝牙设备
            BluetoothAdapter adapter=BluetoothAdapter.getDefaultAdapter();
            //判断BluetoothAdapter是否为空,如果为空,则表明本机没有蓝牙设备
            if(adapter!=null)
            {
                Log.i("msg", "本机应有蓝牙设备");
                //调用isEnable方法,判断蓝牙是否可用
                if(!adapter.isEnabled())
                {
                    //创建一个Intent对象,启动Activity,提示用户开启蓝牙设备
                    Intent intent=new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
                    startActivity(intent);
                }
                //得到所有已经配对的蓝牙适配器
            Set<BluetoothDevice> devices= adapter.getBondedDevices();
            if(devices.size()>0)
            {
                for (Iterator iterator = devices.iterator(); iterator.hasNext();) {
                    BluetoothDevice bluetoothDevice = (BluetoothDevice) iterator
                            .next();
                    BluetoothDevice blueDevice=(BluetoothDevice)iterator.next();
                    //得到远程蓝牙的名称 和 地址
                    Log.i("msg", blueDevice.getName()+"---"+blueDevice.getAddress());
                    
                }
            }
            
                
            }else
            {
                Log.i("msg", "没有蓝牙设备");
            }
            
        }
        
    };
    
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

}

 最后记得加上

 

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

 

posted @ 2013-10-28 21:45  最後的輕語  阅读(1470)  评论(0编辑  收藏  举报