导航:首页 > 操作系统 > android蓝牙耳机开发

android蓝牙耳机开发

发布时间:2022-06-17 01:09:19

android蓝牙开发代码怎么写

开启蓝牙设备和设置可见时间:

java">privatevoidsearch(){
BluetoothAdapteradapter=BluetoothAdapter.getDefaultAdapter();
if(!adapter.isEnabled()){
adapter.enable();
}
Intentenable=newIntent(BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE);
enable.putExtra(BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION,3600);//3600为蓝牙设备可见时间
startActivity(enable);
IntentsearchIntent=newIntent(this,ComminuteActivity.class);
startActivity(searchIntent);
}

首先,需要获得一个BluetoothAdapter,可以通过getDefaultAdapter()获得系统默认的蓝牙适配器,当然我们也可以自己指定,但这个真心没有必要,至少我是不需要的。然后我们检查手机的蓝牙是否打开,如果没有,通过enable()方法打开。接着我们再设置手机蓝牙设备的可见,可见时间可以自定义。

http://www.cnblogs.com/wenjiang/p/3200138.html

⑵ android开发 可不可以监听蓝牙耳机调音量的两个按键

可以的,详细你可以参考:http://blog.csdn.net/kangear/article/details/40430673

⑶ android 手机怎么模拟蓝牙耳机

比较麻烦
1.建议看看BT HID
2.在蓝牙连接之后 调用MME层的接口
3.从蓝牙把声音转到听筒上去

⑷ 如何实现android蓝牙开发 自动配对连接,并不弹出提示框

可以使用NFC功能,原理是两个线圈靠近时可以感应并交流数据,交流数据时可以建立蓝牙连接,现在有部分蓝牙耳机支持NFC功能,只要手机靠近蓝牙耳机就会自动连接。

⑸ android 连接蓝牙耳机的具体实现又做过的大神帮帮忙吧

蓝牙耳机分长按开机配对和一键式开机配对两种的。
长按的:关机状态,长按蓝牙耳机开机键,到蓝牙耳机指示灯红蓝或者红绿交闪烁的时候才松手,这个时候用手机蓝牙搜索耳机,然后点击连接就可以了。
一键式的更简单些,打开开机键,过几秒耳机指示灯红蓝交替闪烁的时候,用手机搜索配对就可以了,注意哦,指示灯一定是交替闪烁才行的。
配对后要是耳机没声音,检查一下手机蓝牙后面是不是勾选到音频了

⑹ 如何使用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回调。你必须扩展这个类并实现回调方法接收更新应用程序的注册状态和蓝牙通道状态的变化。


代表一个应用程序的配置,蓝牙医疗第三方应用注册与远程蓝牙医疗设备交流。

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。

⑺ Android怎样监听蓝牙耳机的按键事件

其实对于Android系统,每次按键只会有一个唯一“键值”响应,使用起来感觉会模模糊糊的,但是其实对于系统来说是很清晰的。

AVRCP全称(Audio/VideoRemoteControlProfile),是蓝牙协议中的一个profile。从名字上就可以看出主要应用于Audio/Video控制。每个按键并不是独立的,上-曲/下一曲是在正在播放音乐的时候才会有效,即才会向Android发送“键值”。

基于按键从Linux到Android分析具体对于的键值:

Linux扫描码功能映射字串Android键值

00c8200 开始放音乐MEDIA_PLAYKEYCODE_MEDIA_PLAY

00c9201 停止放音乐MEDIA_PAUSEKEYCODE_MEDIA_PAUSE

00a3163 下一曲MEDIA_NEXTKEYCODE_MEDIA_NEXT

00a5165 上-曲MEDIA_PREVIOUSKEYCODE_MEDIA_PREVIOUS

Android应用代码,完整测试应用:TeskKey。

总结:1号键会交替发送KEYCODE_MEDIA_PLAY/KEYCODE_MEDIA_PAUSE;2/3号键会在播放音乐时分别发送KEYCODE_MEDIA_PREVIOUS/.KEYCODE_MEDIA_NEXT。如果想要把蓝牙耳机上的按键利用起来,可以在接收到KEYCODE_MEDIA_PLAY时播放无声音乐以使能2/3号键。这样就能完整接收3种键值了自行控制了。这个具体自行设计(测试代码已经更新包含了)。

注:这种实现并不一定通用,比如我在深度定制的MIUI中测试,尽管启动的TestKey应用,系统自带的音乐播放器仍然能同时响应键值。

更新:

已经更新TestKey源码,添加对蓝牙耳机按键的监听,实现方法就是上述中推测的方法,已经成功验证过了。播放音乐参考《Android多媒体开发--资源文件播放》。效果图:


问与答
1.这个只能在播放音乐的状态下才能监听到么?
答:根据上述的原理,这些按键也仅仅是应用在控制媒体时使用;且根据实际验证没有播放音乐时蓝牙耳机的2/3号键是并没有向Android设备发送键值(从底层Linux来看)。综上所述,需要通过播放音乐来实现激活其向Android设备发送键值,针对这种情况可以播放一个“没有声音”的音乐文件来实现,这样既可以监听到2/3号键又可以不影响其它声音的输出。可以在前台时播放音乐,后台停止播放。

2.我现在主要是想监听得到开关键(1号键)。 在做一个按下蓝牙开关键后启动一个语音识别的功能?
答:在我的测试条件下,1号键是可以正常监听到的。1号键会交替发送KEYCODE_MEDIA_PLAY/KEYCODE_MEDIA_PAUSE键值。这个键不需要模拟播放音乐就可以正常的监听到。

3.4号按键的监听方法

答:所谓的4号按键,也就是指本文中的所测试型号的蓝牙耳机上并没有,但有可能其它型号的蓝牙耳机上有。我没有办法测试验证,所以这里就简单叙述一下“新按键”的键值确定思路:1.先使用TestKey测试应用测试按键,测试Android上层是否可以得到对应键值。2.如果没有得到,那么就使用adbshellgetevent来看Linux底层可以不可以得到键值。然后根据按键从Linux到Android来确定Android上层使用的键值码到底是多少。(当然,如果你实在不知道如何监听,把蓝牙耳机寄给我,我给你确定也行。:))

注:其实上述文章完全是根据按键从Linux到Android测试确定下来的。那是篇文章是剥开Android外壳来看“按键”事件的流程的,方法适用于所有输入事件:各种按键/触摸/物理键盘/鼠标等待输入设备。没有一定的Linux开发经验很难看懂和理解。

4.Android后台监听按键怎么实现

或:如何启动一次应用后在后台一直监听播放键因为有这样一个场景在用户开车的时候需按一下开关键就启动语音识别的功能。

这个问题其实已经超出了本文讨论的范围,是Android系统对应用层的键盘事件(按键)的分发的问题了。正常情况下,按键只会向当前最端的应用分发键盘事件,也就是说在后台你边音量键都监听不了。

但是既然这种情况(后台应用监听按键)的需求存在,那么就一定有它存在的道理。比如“相机键”,按下后直接调出相机到最前台。从表面上看是相机响应了按键,但是从实现方法上来看,并不是通过键值来操作,必须通过其它方法,比如广播或者其它等等。

明白了其中的道理后,那么想要实现就好办了。先看这个按键有没有广播,如要有接听系统中发出来的广播;如果没有那么对于定制系统可以自己在系统中添加一个广播;总之,正常渠道是没有办法在后台监听一些不应该是你监听到的按键的。

更:查了一下,这个按键是有广播的。这样就可以后台响应了(不需要C/不需要root)。例子我就不试了,见Android官方例子RandomMusicPlayer。

其中的重点是这个广播android.intent.action.MEDIA_BUTTON。

⑻ 开发Android时,蓝牙耳机已经配对和连接上之后,无法再通过广播Action found搜索到它,是否可以再搜索到

具体有什么需求,连接成功了,不需要广播去获取了啊?直接从列表启动使用就行。


《》获取已配对的蓝牙设备(android.bluetooth.BluetoothDevice)

首次连接某蓝牙设备需要先配对,一旦配对成功,该设备的信息会被保存,以后连接时无需再配对,所以已配对的设备不一定是能连接的。


BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter();
Set<BluetoothDevice> devices = adapter.getBondedDevices();
for(int i=0; i<devices.size(); i++)
{
BluetoothDevice device = (BluetoothDevice) devices.iterator().next();
System.out.println(device.getName());
}

⑼ 安卓广播 蓝牙 开发问题

你应该去论坛发求助帖!而不是来网络知道!

阅读全文

与android蓝牙耳机开发相关的资料

热点内容
只狼加存档应该是哪个文件夹 浏览:110
程序员秃头图片 浏览:920
思科路由器命令手册 浏览:26
android获得当前activity 浏览:833
python入门迷宫 浏览:70
Python打折代码不含商品 浏览:221
把多个Word合成一个pdf 浏览:356
aes算法描述 浏览:899
新手机压缩包在哪 浏览:781
java抽奖程序源码 浏览:700
汽车压缩机又叫 浏览:95
android读取data文件 浏览:874
红旗智联app怎么跟h5车子连接 浏览:139
材料化学pdf 浏览:114
服务器机房都有什么东西 浏览:370
最近长阴短柱量能副图指标源码 浏览:647
python字符串去除后四位 浏览:167
捷速pdf编辑器破解版 浏览:726
大带宽服务器怎么租 浏览:299
篮球程序员单身难吗 浏览:877