您的位置:首页 > 移动开发 > Android开发

android6.23蓝牙操作

2016-06-23 21:43 288 查看
扫描已经配对的蓝牙设备
过程

蓝牙设备可见性

扫描已经配对的蓝牙设备

首先声明蓝牙权限

过程

获得BluetoothAdapter对象

判断当前设备是否有蓝牙

判断当前设备蓝牙是否打开

得到所有已经配对的蓝牙设备对象

public class MainActivity extends AppCompatActivity {
private Button button;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button = (Button) findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//得到蓝牙适配器对象
BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter();
//判断是适配器是否为null,如果为空则没有蓝牙设备
if(adapter != null) {
Log.d("bluetooth", "当前设备拥有蓝牙功能");
//判断当前蓝牙设备是否可用,如果可用的话打开
if(!adapter.isEnabled()) {
//该对象用于启动一个activity提示用户开启蓝牙设备
Intent intent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
startActivity(intent);
}
//得到所有已经配对的蓝牙设备
Set<BluetoothDevice> devices = adapter.getBondedDevices();
if (devices.size() > 0) {
//set和list都有iterator方法返回一个iterator对象,next()方法返回一个object对象
for (Iterator iterator = devices.iterator(); iterator.hasNext();) {
BluetoothDevice bluetoothDevice = (BluetoothDevice) iterator.next();
Log.d("bluetooth", bluetoothDevice.getName());
}
}
}else {
Log.d("bluetooth", "当前设备没有蓝牙功能");
}

}
});
}
}


蓝牙设备可见性

修改可见性

扫描周围可用的蓝牙的设备

设置相关设备可见性需要获取bluetooth.admin权限

public class MainActivity extends AppCompatActivity {

private Button button;
private Button button01;
private BluetoothAdapter bluetoothAdapter;
private BluetoothReceiver receiver;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//创建一个意图过滤对象
IntentFilter intentFilter = new IntentFilter(BluetoothDevice.ACTION_FOUND);

//创建一个接收器对象
receiver = new BluetoothReceiver();
//注册
registerReceiver(receiver, intentFilter);

bluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
button01 = (Button) findViewById(R.id.button_01);
button = (Button) findViewById(R.id.button);
//设置蓝牙设备可见性
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//创建一个意图,设置action为蓝牙不可见
Intent discoverableIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE);
//讲一个键值对存放到intent中,设置不可见时间,默认为120s,我的手机上可以设置为500s没有被300s
//覆盖
discoverableIntent.putExtra(BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION, 500);
startActivity(discoverableIntent);
}
});

button01.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//开始扫描蓝牙设备
bluetoothAdapter.startDiscovery();
}
});

}

class BluetoothReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
//可以从intent中取除远程的蓝牙设备对象
BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
Log.d("Bluetooth", device.getAddress());

}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: