初学安卓蓝牙通讯方面的知识,然后想把自己每天学习的东西记录下来,不管详细与否,权当练笔吧。
private ToggleButton tBtnBTSwitch;//双状态按钮开关,
tBtnBTSwitch = (ToggleButton)findViewById(R.id.tBtnBTSwitch);//
if(mBTAdapter.getState()==BluetoothAdapter.STATE_OFF)//获取蓝牙设备开关状态
tBtnBTSwitch.setChecked(false);
if(mBTAdapter.getState()==BluetoothAdapter.STATE_ON)
tBtnBTSwitch.setChecked(true);
一些定义,然后就是获取BluetoothAdapter的状态,显示ToggleButton控件的内容,接着就是通过OnClickListener事件,判断蓝牙设备的状态,并显示我们需要的。
tBtnBTSwitch.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View view){
// Open BT
if(tBtnBTSwitch.isChecked()){
if(!mBTAdapter.isEnabled()){
//Open a new dialog to ask user whether wanna open BT
Intent enabler = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
startActivityForResult(enabler,REQUEST_ENABLE_BT); //打开蓝牙
}
tBtnBTSwitch.setChecked(true);
}
// Close BT
if(!tBtnBTSwitch.isChecked()){
if(mBTAdapter.isEnabled()){
mBTAdapter.disable();
Toast.makeText(BTConnectActivity.this, "BT has been closed!", Toast.LENGTH_SHORT).show();
} //关闭蓝牙
tBtnBTSwitch.setChecked(false);
}
}
});
在android上开发蓝牙通信的时候,首先需要在Manifest上面添加权限:
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
然后,打开蓝牙,我在这里是添加了一个Button控件,点击后可询问是否开启蓝牙,300s显示可见,并在一个TextView上面显示本设备的MAC地址!:
// TODO Auto-generated method stub
//if(blueApter == null){
//}
//if(!blueApter.isEnabled()){
//Intent enableBtIntent =new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
//startActivity(enableBtIntent);//打开蓝牙
//}
Intent discoverIntent=new Intent(BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE);
//可被检测到300S
discoverIntent.putExtra(BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION,300);
startActivity(discoverIntent);
mTextview2.setText(blueApter.getAddress());
MAC地址可以帮助我们快速与需要的设备连接(偷懒的时候可以用,免去搜索步骤)。嘿嘿~上面代码打开蓝牙的程序被我注释掉了,因为我发现,在设置蓝牙可见时也会自行打开蓝牙,之前的步骤多此一举。。。
另外在学习过程中,我import别人的程序时出现如下错误:
这主要是SDK版本的问题,在project-Properties-Android中,把下面的Project Build Target修改下,提高版本即可!
转载于:https://blog.51cto.com/catspringroll/1312403