前几周一直在弄一个蓝牙聊天,结果还行,但大部分也都是从网上这点当一下,那点当一下,今天把我前·几周的认识给总结一下
首先你先去了解一下关于蓝牙的一些知识,这里给一个网址,看懂这些,那么你的工程进度基本上就完成了百分之三十
http://www.android-doc.com/guide/topics/connectivity/bluetooth.html
这里面详细的介绍了蓝牙的一些基本操作。接下来,开始我们的项目
在开始之前先理一下要想实现蓝牙聊天的逻辑:
- 要先获取本地蓝牙设备
- 判断蓝牙如今的状态
- 如果蓝牙没有打开,那么就要让他打开
- 如何去搜索周边的蓝牙设备和发现本地已经配对的蓝牙设备
- 如何进行连接与传输
按照上面的逻辑咱们一点一点的来:
这首先获取本地蓝牙设备
BluetoothAdapter bluetoothAdapter = BluetoothAdapter.getDefaultAdapter()
其实关于这句话的介绍上面的网址都有详细的介绍,就是用来获取手机本地的蓝牙设备,如果返回的不是null那么该手机就有蓝牙设备,换句话说就是该手机支持蓝牙设备,现在大部分手机都有蓝牙,就不废话啦。接下来,第二步
第二步 ,判断蓝牙现在的状态,是开启还是关闭
boolean bl = bluetoothAdapter.isEnabled()
if(bl){
Tooath.makeText(MainAcitivity.this,"已经打开蓝牙",Toath.LENGTH_SHORT).show();
}else{
Tooath.makeText(MainAcitivity.this,"没有打开蓝牙",Toath.LENGTH_SHORT).show();
}
这里的bluetoothAdapter是我们在第一步声明好的变量,一定要一致。而这里通过调用isEnabled()方法,来判断蓝牙是否打开;该方法的意思,可以参考上面的网址 ,如果打开了,那么返回true,否则false,通过两个Tooath来提示用户。接下来,第三步
第三步,打开蓝牙
Intent intent = new Intent(bluetoothAdapter.ACTION_REQUEST_ENABLE);
startActivityForResult(intent,1);
很简单的一句话,这里都是Android内部写好的,当你执行这一句话时,软件会给你弹出是否打开蓝牙的一个框框,这个框框其实就是一个界面,这个界面就是上面那个bluetoothAdapter.ACTION_REQUEST_ENABLE,之后调用并传参,其实参数没有什么特别要求,任意传就行,另外我这里写的不规范,按理说,应该用一个常量来把这个1代替,这里为了更直观,所以就写了1。另外,最重要的一点,就是权限问题
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<uses-permission android:name="android.permission.BLUETOOTH"/>
这一句话必须加上
这是前三节,最重要的两点,
- 获取本地蓝牙设备;
- 打开蓝牙