Android開發之藍牙--掃描已經配對的藍牙設備

一. 什麼是藍牙(Bluetooth)?java

 

1.1  BuleTooth是目前使用最普遍的無線通訊協議android

 

1.2  主要針對短距離設備通信(10m)網絡

 

1.3  經常使用於鏈接耳機,鼠標和移動通信設備等.app

 

二. 與藍牙相關的APIide

 

2.1 BluetoothAdapter:spa

表明了本地的藍牙適配器xml

 

2.2 BluetoothDevice對象

表明了一個遠程的Bluetooth設備blog

 

三. 掃描已經配對的藍牙設備(1)部署

 

注:必須部署在真實手機上,模擬器沒法實現

 

首先須要在AndroidManifest.xml 聲明藍牙權限

 

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

 

配對藍牙須要手動操做:

 

1. 打開設置--> 無線網絡 --> 藍牙 勾選開啓

 

2. 打開藍牙設置  掃描周圍已經開啓的藍牙設備(能夠與本身的筆記本電腦進行配對),點擊進行配對

 

 

 電腦上會彈出提示窗口添加設備

 

 顯示計算與設備之間的配對碼,要求確認是否配對

 

 手機上也會顯示相似的提示

 

四. 掃描已經配對的藍牙設備(2)

 

4.1 得到BluetoothAdapter對象

4.2 判斷當前移動設備中是否擁有藍牙

4.3 判斷當前移動設備中藍牙是否已經打開

4.4 獲得全部已經配對的藍牙設備對象

 

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.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class MainActivity extends Activity {
	private Button button = null;
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        button = (Button)findViewById(R.id.buttonId);
        button.setOnClickListener(new OnClickListener(){

			@Override
			public void onClick(View v) {
				//得到BluetoothAdapter對象,該API是android 2.0開始支持的
				BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter();
				//adapter不等於null,說明本機有藍牙設備
				if(adapter != null){
					System.out.println("本機有藍牙設備!");
					//若是藍牙設備未開啓
					if(!adapter.isEnabled()){
						Intent intent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
						//請求開啓藍牙設備
						startActivity(intent);
					}
					//得到已配對的遠程藍牙設備的集合
					Set<BluetoothDevice> devices = adapter.getBondedDevices();
					if(devices.size()>0){
						for(Iterator<BluetoothDevice> it = devices.iterator();it.hasNext();){
							BluetoothDevice device = (BluetoothDevice)it.next();
							//打印出遠程藍牙設備的物理地址
							System.out.println(device.getAddress());
						}
					}else{
						System.out.println("尚未已配對的遠程藍牙設備!");
					}
				}else{
					System.out.println("本機沒有藍牙設備!");
				}
			}
        });
    }
}
相關文章
相關標籤/搜索