×

安卓蓝牙开发教程 oid

安卓蓝牙开发教程(android蓝牙程序开发中,如何确定一台手机当前是服务器还是客户端)

admin admin 发表于2023-04-20 17:58:54 浏览46 评论0

抢沙发发表评论

本文目录

android蓝牙程序开发中,如何确定一台手机当前是服务器还是客户端


首先,要操作蓝牙,先要在AndroidManifest.xml里加入权限
《uses-permissionandroid:name=“android.permission.BLUETOOTH_ADMIN“ /》
《uses-permissionandroid:name=“android.permission.BLUETOOTH“ /》
然后,看下api,Android所有关于蓝牙开发的类都在android.bluetooth包下。 而需要用到了就只有几个而已:
1.BluetoothAdapter 顾名思义,蓝牙适配器,直到我们建立bluetoothSocket连接之前,都要不断操作它BluetoothAdapter里的方法很多,常用的有以下几个:cancelDiscovery() 根据字面意思,是取消发现,也就是说正在搜索设备的时候调用这个方法将不再继续搜索disable()关闭蓝牙enable()打开蓝牙,这个方法打开蓝牙不会弹出提示,更多的时候需要问下用户是否打开,一下这两行代码同样是打开蓝牙,不过会提示用户:Intemtenabler=new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
startActivityForResult(enabler,reCode);//同startActivity(enabler);
getAddress()获取本地蓝牙地址getDefaultAdapter()获取默认BluetoothAdapter,实际上,也只有这一种方法获取BluetoothAdaptergetName()获取本地蓝牙名称getRemoteDevice(String address)根据蓝牙地址获取远程蓝牙设备getState()获取本地蓝牙适配器当前状态(感觉可能调试的时候更需要)isDiscovering()判断当前是否正在查找设备,是返回true***isEnabled()判断蓝牙是否打开,已打开返回true,否则,返回false***listenUsingRfcommWithServiceRecord(String name,UUID uuid)根据名称,UUID创建并返回BluetoothServerSocket,这是创建BluetoothSocket服务器端的第一步startDiscovery()开始搜索,这是搜索的第一步。 2.BluetoothDevice看名字就知道,这个类描述了一个蓝牙设备createRfcommSocketToServiceRecord(UUIDuuid)根据UUID创建并返回一个BluetoothSocket这个方法也是我们获取BluetoothDevice的目的——创建BluetoothSocket
这个类其他的方法,如getAddress(),getName(),同BluetoothAdapter;
3.BluetoothServerSocket如果去除了Bluetooth相信大家一定再熟悉不过了,既然是Socket,方法就应该都差不多,这个类一种只有三个方法
两个重载的accept(),accept(inttimeout)两者的区别在于后面的方法指定了过时时间,需要注意的是,执行这两个方法的时候,直到接收到了客户端的请求(或是过期之后),都会阻塞线程,应该放在新线程里运行。
还有一点需要注意的是,这两个方法都返回一个BluetoothSocket,最后的连接也是服务器端与客户端的两个BluetoothSocket的连接。
4.BluetoothSocket,跟BluetoothServerSocket相对,是客户端一共5个方法,不出意外,都会用到close(),关闭connect()连接getInptuStream()获取输入流getOutputStream()获取输出流getRemoteDevice()获取远程设备,这里指的是获取bluetoothSocket指定连接的那个远程蓝牙设备 。

android蓝牙开发,PC端模拟串口接收字符,该如何编程


您好,android蓝牙这方面还是很好搞的,因为大家的方式都是差不多的。先说说如何开启蓝牙设备和设置可见时间:
private void search() {
BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter();
if (!adapter.isEnabled()) {
adapter.enable();
}
Intent enable = new Intent(BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE);
enable.putExtra(BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION, 3600); //3600为蓝牙设备可见时间
startActivity(enable);
Intent searchIntent = new Intent(this, ComminuteActivity.class);
startActivity(searchIntent);
}
首先,需要获得一个BluetoothAdapter,可以通过getDefaultAdapter()获得系统默认的蓝牙适配器,当然我们也可以自己指定,但这个真心没有必要,至少我是不需要的。然后我们检查手机的蓝牙是否打开,如果没有,通过enable()方法打开。接着我们再设置手机蓝牙设备的可见,可见时间可以自定义。

完成这些必要的设置后,我们就可以正式开始与蓝牙模块进行通信了:
public class ComminuteActivity extends Activity {
private BluetoothReceiver receiver;
private BluetoothAdapter bluetoothAdapter;
private List《String》 devices;
private List《BluetoothDevice》 deviceList;
private Bluetooth client;
private final String lockName = “BOLUTEK“;
private String message = “000001“;
private ListView listView;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.search_layout);
listView = (ListView) this.findViewById(R.id.list);
deviceList = new ArrayList《BluetoothDevice》();
devices = new ArrayList《String》();
bluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
bluetoothAdapter.startDiscovery();
IntentFilter filter = new IntentFilter(BluetoothDevice.ACTION_FOUND);
receiver = new BluetoothReceiver();
registerReceiver(receiver, filter);
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView《?》 parent, View view, int position, long id) {
setContentView(R.layout.connect_layout);
BluetoothDevice device = deviceList.get(position);
client = new Bluetooth(device, handler);
try {
client.connect(message);
} catch (Exception e) {
Log.e(“TAG“, e.toString());
}
}
});
}
@Override
protected void onDestroy() {
unregisterReceiver(receiver);
super.onDestroy();
}
private final Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
switch (msg.what) {
case Bluetooth.CONNECT_FAILED:
Toast.makeText(ComminuteActivity.this, “连接失败“, Toast.LENGTH_LONG).show();
try {
client.connect(message);
} catch (Exception e) {
Log.e(“TAG“, e.toString());
}
break;
case Bluetooth.CONNECT_SUCCESS:
Toast.makeText(ComminuteActivity.this, “连接成功“, Toast.LENGTH_LONG).show();
break;
case Bluetooth.READ_FAILED:
Toast.makeText(ComminuteActivity.this, “读取失败“, Toast.LENGTH_LONG).show();
break;
case Bluetooth.WRITE_FAILED:
Toast.makeText(ComminuteActivity.this, “写入失败“, Toast.LENGTH_LONG).show();
break;
case Bluetooth.DATA:
Toast.makeText(ComminuteActivity.this, msg.arg1 + ““, Toast.LENGTH_LONG).show();
break;
}
}
};
private class BluetoothReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (BluetoothDevice.ACTION_FOUND.equals(action)) {
BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
if (isLock(device)) {
devices.add(device.getName());
}
deviceList.add(device);
}
showDevices();
}
}
private boolean isLock(BluetoothDevice device) {
boolean isLockName = (device.getName()).equals(lockName);
boolean isSingleDevice = devices.indexOf(device.getName()) == -1;
return isLockName && isSingleDevice;
}
private void showDevices() {
ArrayAdapter《String》 adapter = new ArrayAdapter《String》(this, android.R.layout.simple_list_item_1,
devices);
listView.setAdapter(adapter);
}
}

蓝牙开发板怎么用


宝上卖的蓝牙板子很好用的,安装也很简单,板子上有连接标示和字母。使用电压是3.7-5伏,可以单独用手机电池供电,下面我介绍一下我安装了一个蓝牙板子:

在一块手机电池上,安装了一个微型开关,控制蓝牙板的电源,音频输出A连接功放机输入端。可以通过USB插口给电池充电。


如何使用Android蓝牙开发


Android平台支持蓝牙网络协议栈,实现蓝牙设备之间数据的无线传输。本文档描述了怎样利用android平台提供的蓝牙API去实现蓝压设备之间的通信。蓝牙具有point-to-point 和 multipoint两种连接功能。
使用蓝牙API,可以做到:
* 搜索蓝牙设备
* 从本地的Bluetooth adapter中查询已经配对的设备
* 建立RFCOMM通道
* 通过service discovery连接到其它设备
* 在设备之间传输数据
* 管理多个连接
基础知识
本文档介绍了如何使用Android的蓝牙API来完成的四个必要的主要任务,使用蓝牙进行设备通信,主要包含四个部分:蓝牙设置、搜索设备(配对的或可见的)、连接、传输数据。
所有的蓝牙API在android.bluetooth包中。实现这些功能主要需要下面这几个类和接口:
BluetoothAdapter
代表本地蓝牙适配器(蓝牙发射器),是所有蓝牙交互的入口。通过它可以搜索其它蓝牙设备,查询已经配对的设备列表,通过已知的MAC地址创建BluetoothDevice,创建BluetoothServerSocket监听来自其它设备的通信。
BluetoothDevice
代表了一个远端的蓝牙设备, 使用它请求远端蓝牙设备连接或者获取 远端蓝牙设备的名称、地址、种类和绑定状态。 (其信息是封装在 bluetoothsocket 中) 。
BluetoothSocket
代表了一个蓝牙套接字的接口(类似于 tcp 中的套接字) ,他是应用程 序通过输入、输出流与其他蓝牙设备通信的连接点。
BluetoothServerSocket
代表打开服务连接来监听可能到来的连接请求 (属于 server 端) , 为了连接两个蓝牙设备必须有一个设备作为服务器打开一个服务套接字。 当远端设备发起连 接连接请求的时候,并且已经连接到了的时候,Blueboothserversocket 类将会返回一个 bluetoothsocket。
BluetoothClass
描述了一个设备的特性(profile)或该设备上的蓝牙大致可以提供哪些服务(service),但不可信。比如,设备是一个电话、计算机或手持设备;设备可以提供audio/telephony服务等。可以用它来进行一些UI上的提示。
BluetoothProfile
BluetoothHeadset
提供手机使用蓝牙耳机的支持。这既包括蓝牙耳机和免提(V1.5)模式。
BluetoothA2dp
定义高品质的音频,可以从一个设备传输到另一个蓝牙连接。 “A2DP的”代表高级音频分配模式。
BluetoothHealth
代表了医疗设备配置代理控制的蓝牙服务
BluetoothHealthCallback
一个抽象类,使用实现BluetoothHealth回调。你必须扩展这个类并实现回调方法接收更新应用程序的注册状态和蓝牙通道状态的变化。
BluetoothHealthAppConfiguration
代表一个应用程序的配置,蓝牙医疗第三方应用注册与远程蓝牙医疗设备交流。
BluetoothProfile.ServiceListener
当他们已经连接到或从服务断开时通知BluetoothProfile IPX的客户时一个接口(即运行一个特定的配置文件,内部服务)。
蓝牙权限
为了在你的应用中使用蓝牙功能,至少要在AndroidManifest.xml中声明两个权限:BLUETOOTH(任何蓝牙相关API都要使用这个权限) 和 BLUETOOTH_ADMIN(设备搜索、蓝牙设置等)。
为了执行蓝牙通信,例如连接请求,接收连接和传送数据都必须有BLUETOOTH权限。
必须要求BLUETOOTH_ADMIN的权限来启动设备发现或操纵蓝牙设置。大多数应用程序都需要这个权限能力,发现当地的蓝牙设备。此权限授予其他的能力不应该使用,除非应用程序是一个“电源管理”,将根据用户要求修改的蓝牙设置
注释:要请求BLUETOOTH_ADMIN的话,必须要先有BLUETOOTH。
在你的应用manifest 文件中声明蓝牙权限。例如:
《manifest ... 》
《uses-permission android:name=“android.permission.BLUETOOTH“ /》
...
《/manifest》
通过查看《uses-permission》资料来声明应用权限获取更多的信息。
蓝牙设置
在你的应用通过蓝牙进行通信之前,你需要确认设备是否支持蓝牙,如果支持,确信它被打开。
如果不支持,则不能使用蓝牙功能。如果支持蓝牙,但不能够使用,你刚要在你的应用中请求使用蓝牙。这个要两步完成,使用BluetoothAdapter。

安卓手机使用蓝牙连接传输文件


虽然手机蓝牙诞生已久,但也不能排除新手用户不知道如何使用安卓手机蓝牙连接传输文件,今天教程君就来教新手用户如何使用蓝牙。
首先要打开手机的蓝牙功能,平常大家不用蓝牙的时候一般处于关闭状态,需要的时候才开启,这样比较省电不是~~
步骤一:打开蓝牙
打开蓝牙于两种方法,一种是通过快捷方式,比如桌面的蓝牙开关等以及状态栏的下拉菜单,还有一种是居然菜单设置里的蓝牙选项,选择打开蓝牙
步骤二:设置蓝牙,配对蓝牙
在蓝牙界面里按菜单键可以看到重命名、超时检测、显示接受到的文件三个菜单,重命名可以把手机命名为自己喜欢的容易识别的名称
比如“我的手机”“一头老母猪”等,点击手机名称让你的手机处于可检测状态。此时需要配对的另一台手机也设置好并处于可检测状态就能在可用设备里检测到了
检测到需要配对的手机后,点击设备名称-选择配对。此时会在两台设备显示蓝牙配对请求界面,核对好秘钥之后选择“配对”就配对好了手机,之后再次使用蓝牙传输文件就不需要再次匹配了。
步骤三:使用蓝牙传输文件
配对好之后就能在两台手机间传输任何可读取的文件了,比如照片、音乐、视频、APK包等等。
打开文件管理器,选择需要传输的文件-按菜单键-选择分享就能看到如下的菜单,如果有安装其他的设计软件并带有分享功能就能在菜单里看到了,比如微信,由于小编没人跟我玩装微信,所以卸载了。
点击蓝牙后就跑到蓝牙界面,如右上图,选择要发送的手机,文件就处于传输状态了。此时在接受方手机要选择接受操作才能完成传输操作。那么安卓手机使用蓝牙连接传输文件就完成了,很简单不是!

如何开始蓝牙软件开发


最快上手的方式:

  1. 淘宝买开发板,ti nordic csr都可以

  2. 按教程先跑一次

  3. 开始看蓝牙协议的资料,蓝牙芯片只是个mcu,协议栈一般厂商不开放,别想太难,和stm32没多少区别


安卓手机怎么使用airpods


苹果的蓝牙耳机配对安卓手机,需要用户将苹果蓝牙耳机电源开启,在通过安卓手机中蓝牙搜索功能进行连接。具体操作步骤如下:
1、首先,按下苹果蓝牙耳机电源盒背面的按钮,如下图所示。
2、接下来,拿出安卓手机,点击安卓手机中设置,如下图所示。
3、然后,在我的设备界面中,找到蓝牙选项并点击它,如下图所示。
4、接下来,进入蓝牙页面后,点击后面开启按钮,如下图所示。
5、最后,蓝牙开启后,自动搜索弹出页面,点击“连接”,即可将苹果蓝牙耳机与Android手机配对,如下图所示。
使用苹果手机的朋友一般使用无线耳机时都会购置苹果旗下的AirPods ,但是毕竟它价格属于中上,买了一副就不会说经常更换。所以当这些用户更换了安卓机使用时能否继续使用苹果无线耳机进行配对连接呢?其实我们是完全可以的,接下来就为大家来介绍一下如何让苹果无线耳机连接安卓手机。
第一步:
首先如果你的 AirPods 当前已经连接到苹果手机上,建议你可以先在苹果手机上解除与 AirPods 耳机的配对。
第二步:
让 AirPods 连接安卓,在 AirPods 电池盒的背部有一个圆形按钮开关,首先打开 AirPods 充电盒并长按背部的圆形按钮,随后就会看到指示灯显示为白色并闪烁。此时表示 AirPods 已经进入配对模式了,接下来就可以去安卓手机上与它配对连接了。要在安卓手机上确保蓝牙开关已经打开。
第三步:
在安卓手机的蓝牙列表中稍等一下就能发现 AirPods 耳机,点击即可进行连接。连接成功以后在安卓手机的蓝牙中是可以看到 AirPods 已经连接字样的。然后我们就可以在安卓手机使用 AirPods 耳机了。
第四步:
如果要让 AirPods 耳机与安卓手机解除配对连接,同样的在蓝牙中找到 AirPods 并取消配对就可以了。如果你使用的是 AirPods Pro,操作方法也是一样的通过耳机背部的圆形按钮开关来实现与安卓的连接。
以上就是如何让苹果无线耳机连接安卓手机的具体解决办法,相信大家很快能够学会怎么样进行操作

安卓手机蓝牙耳机怎么用 安卓手机蓝牙使用方法


好像蓝牙可以追寻到我们初中高中还是挺流行的,当在线聊天软件还没有那么强大的时候,蓝牙是很受欢迎的,可以传输图片,音乐,视频,文件等等,虽然速度很慢,但是还是很受大家的喜爱。安卓手机的蓝牙使用方法和苹果iPhone使用是有区别的,安下小编今天说的是普遍安卓手机蓝牙使用图文教程,希望教程对你有帮助!
安卓手机蓝牙使用方法/步骤
1、使用蓝牙的提前是两台设备必须要有蓝牙功能,并且要开启。(平时不用蓝牙的时候关闭,不然会很好点的)蓝牙的打开步骤如下;
2、打开蓝牙之后就要对周边进行检测;
3、检测到了对方的蓝牙信号之后,就进行匹配,匹配成功之后就是已经连接上了(如果是蓝牙耳机,音响之类的,只要完成这一步就可以用了);
4、下面你就可以发你想要发的文件给对方了;
5、选择还了文件就点击分享,分享方式选择蓝牙,然后选择设备;
6、这样就完成了文件的传输;