第一篇:CSR蓝牙耳机开发简介(模版)
CSR蓝牙耳机开发简介
一.BC6145 1.连接spi板和BC6145,电脑并口连接到spi下载板上,bc6145要开机,如下图:
2.打开Headset Config Tool BC6145软件,修改pskey
先选择从目标板上读取pskey设置,如下图,选择open from device 在各设计选择完后,选择write to device(若要保存设置文件,则选择write PSR)3.需要复位eeprom,才能使设置起作用,复位可以断电复位,或者关机后等1分钟进入待机后再开机即可起作用。
第二篇:蓝牙耳机市场调查问卷
蓝牙耳机市场调查问卷
您好!感谢您用宝贵的时间参与这份问卷调查。为了更好地了解蓝牙耳机在大学生中的市场情况,设计一款更适合您的蓝牙耳机,需要您真诚的帮助和真实的回答,您的每一份耐心对于我来说都是莫大的支持!(此问卷无需填写您的姓名,且保证您的回答保密)
问题1:您的性别
○ A男○ B 女
问题2:您的月生活费大概是?(单选题)
○ A500元以下 ○ B500元—1000 元○ C1000以上
问题3:您使用耳机的原因 ?(单选题)
○ A 听音乐 ○ B 语音聊天 ○ C 网络游戏 ○ D 其他
问题4:您喜欢那种佩戴方式的耳机?(单选题)
○ A 耳塞式○ B 入耳式○ C 头戴式○ C 耳后式○ D 其他
问题5:您更喜欢有线耳机还是无线耳机?(单选题)
○ A 有线○ B 无线○ C 无所谓
问题6:您的手机是否有蓝牙功能?(单选题)
○ A 有 ○ B 没有 ○ C 功能显示有,但没用过
问题7:您是否考虑购买蓝牙耳机?(单选题)
○ A 考虑购买○ B 不考虑,手机不支持○ C 已经有了,暂不考虑
问题8:您更喜欢哪种外观风格的蓝牙耳机?(单选题)
○ A 普通实用型○ B 潮流时尚型○ C 个性独特型○ D古怪夸张型
问题9:您对购买耳机的首要标准是?(单选题)
○ A价格○ B外观○ C音质○ D工艺○ E 品牌
问题10:您会购买以下哪个价位的蓝牙耳机?(单选题)
○ A 100以下○ B 100~200○ C 200~300○ D 300以上
问题11:您购买蓝牙耳机的初衷【多选题】□ A 方便接听电话□ B减少电话辐射□ C听音乐□ D追求时尚□ E体验产品 问题12:对于蓝牙耳机的市场前景您有什么想法?【多选题】
□ A价格下降更有前景 □ B外观设计多样化 □ C增加一些功能更实用 □ D 技术突破□ E佩戴更舒适
蓝牙耳机是一种基于蓝牙技术的一种小型设备,只需要把这种轻巧的设备藏
在耳机边而不需要直接使用通讯设备(手机、电脑等)就可以实现自由通话、听音乐、运动,让生活变得更轻松!
第三篇:多普达手机上如何蓝牙耳机听音乐
多普达手机上如何蓝牙耳机听音乐(完美篇)
兰牙耳机在多普达系列手机上一直都是无法操作听音乐,这是当下很多手机玩家苦恼的地方!我综合网络上的一些资料,整理一个确切可行的操作方法。当然,该办法已经得到我的具体实施有效!
当下也许摩托的兰牙耳机比较低廉,所以咱们以摩托蓝牙耳机做例子(兰牙耳机不存在品牌问题,在任何手机上,只要做到匹配,都是不成问题的)
开始!
1、进入“设置”功能,按4进入“蓝牙设置”
2、按1进入“蓝牙”选项,把Bluetooth中的“关闭”改为“可发现”,按左软键完成。一直按左软键完成及退出返回到首页时在电池、信号状态栏上会出现一个蓝牙的图示,信号状态灯会变成一绿一蓝的交替闪烁。
3、重新进入“蓝牙设置”的“蓝牙”选项,按右软键打开菜单,选择“1设备”,再按右软键打开菜单,选择“1新建”,这时手机上会出现搜索的画面,此时,要紧接着打开蓝牙耳机电源并进入配对状态(具体请看耳机说明书)。
4、当找到“Motorola HS801”时按左软键“选择”,出现输入密钥的输入框,在框中输入“0000”(MOTO HS801的密钥)后按左软键“完成”。
5、出现请输入设备的显示名称输入框,可改可不改,按左软键“完成”;
6、出现确认是否指定Motorola HS801为免提设备的对话菜单,按左软键“是”;
7、出现设备已添加的提示信息,按左软键“确定”;
8、这时在设备中会出现“Motorola HS801”一行信息,一直按左软键“完成”退出返回到首页即可。这时在电池、信号状态栏上会出现一个耳机的图示。(注:蓝牙设置中的其它3个选项我都没有去更改)
通过试验在房间与卫生间之间有6米左右范围内使用蓝牙耳机通话清晰正常来电时耳机内会有提示音,短按耳机上的按键可以接听与挂断;在待机状态时,短按耳机上的按键可以实现语音拨号,识别率还不错,并会在识别后播放你之前录制的语音,然后拨出电话;长按耳机按键可以重拨之前拨出的电话。
匹配工作已经做好,接下来就是实施兰牙耳机听音乐的步骤了!实施之前,请下载以下软件“任务管理器”下载地址请登陆:论坛小宝置顶查询贴有下载。
这个软件就是SP TASK MANAGER,可以用它来关闭系统进程。
现在,方法如下:
首先在手机上安装SP TASK MANAGER,把下载的软件,解压,复制到storage目录下的Program Files 目录下,然后打开文件夹,把其中的SPTaskMgrEN文件复制到Storage目录下的window文件夹内的Start Menu文件夹里粘贴快捷方式,重命名为任务管理器。然后关机重新启动。
开机!在开始里找到任务管理器,进入-->点击菜单-->把隐藏系统进程打开!关闭“cdial.exe”进程。
按一下耳机上的“接听键”的按钮,你就可以在575上用蓝牙耳机听音乐了。
关闭“cdial.exe”进程,其实就是使耳机的语音拨号功能无效。按一下耳机上的“接听键”的按钮,使手机上的声音都发送到耳机,再按一下“接听键”,关闭耳机接听声音,是手机播放声音。
[ 本帖最后由 LWLING001 于 2007-4-16 12:38 编辑 ]
第四篇:Android蓝牙开发小结
学习之前先了解两个基本概念:
一、RFCOMM协议:
一个基于欧洲电信标准协会ETSI07.10规程的串行线性仿真协议。此协议提供RS232控制和状态信号,如基带上的损坏,CTS以及数据信号等,为上层业务(如传统的串行线缆应用)提供了传送能力。
RFCOMM是一个简单传输协议,其目的是针对如何在两个不同设备上的应用之间保证一条完整的通信路径,并在它们之间保持一通信段。
RFCOMM是为了兼容传统的串口应用,同时取代有线的通信方式,蓝牙协议栈需要提供与有线串口一致的通信接口而开发出的协议。RFCOMM协议提供对基于L2CAP协议的串口仿真,基于ETSI07.10。可支持在两个BT设备之间同时保持高达60路的通信连接。
RFCOMM只针对直接互连设备之间的连接,或者是设备与网络接入设备之间的互连。通信两端设备必须兼容于RFCOMM协议,有两类设备:DTE(Data Terminal Endpoint,通信终端,如PC,PRINTER)和DCE(Data Circuit Endpoint,通信段的一部分,如Modem)。此两类设备不作区分。
二、MAC硬件地址
MAC(Medium/MediaAccess Control, 介质访问控制)MAC地址是烧录在NetworkInterfaceCard(网卡,NIC)里的.MAC地址,也叫硬件地址,是由48比特长(6字节),16进制的数字组成.0-23位叫做组织唯一标志符(organizationally unique,是识别LAN(局域网)节点的标识.24-47位是由厂家自己分配。其中第40位是组播地址标志位。网卡的物理地址通常是由网卡生产厂家烧入网卡的EPROM(一种闪存芯片,通常可以通过程序擦写),它存储的是传输数据时真正赖以标识发出数据的电脑和接收数据的主机的地址。
Android平台提供的蓝牙API去实现蓝牙设备之间的通信,蓝牙设备之间的通信主要包括了四个步骤:设置蓝牙设备、寻找局域网内可能或者匹配的设备、连接设备和设备之间的数据传输。以下是建立蓝牙连接的所需要的一些基本类:
BluetoothAdapter类:代表了一个本地的蓝牙适配器。它是所有蓝牙交互的的入口点。利用它你可以发现其他蓝牙设备,查询绑定了的设备,使用已知的MAC地址实例化一个蓝牙设备和建立一个BluetoothServerSocket(作为服务器端)来监听来自其他设备的连接。
BluetoothDevice类:代表了一个远端的蓝牙设备,使用它请求远端蓝牙设备连接或者获取远端蓝牙设备的名称、地址、种类和绑定状态。(其信息是封装在bluetoothsocket中)。
Bluetoothsocket类:代表了一个蓝牙套接字的接口(类似于tcp中的套接字),它是应用程序通过输入、输出流与其他蓝牙设备通信的连接点。
Blueboothserversocket类:代表打开服务连接来监听可能到来的连接请求(属于server端),为了连接两个蓝牙设备必须有一个设备作为服务器打开一个服务套接字。当远端设备发起连接连接请求的时候,并且已经连接到了的时候,Blueboothserversocket类将会返回一个bluetoothsocket。
Bluetoothclass类:描述了一个蓝牙设备的一般特点和能力。它的只读属性集定义了设备的主、次设备类和一些相关服务。然而,它并没有准确地描述所有该设备所支持的蓝牙文件和服务,而是作为对设备种类来说的一个小小暗示。下面说说具体的编程实现 1.启动蓝牙功能:
首先通过调用静态方法getDefaultAdapter()获取蓝牙适配器BluetoothAdapter,以后你就可以使用该对象了。如果返回为空,the story is over。例如:
BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();if(mBluetoothAdapter == null){ // Device does not support Bluetooth } 其次,调用isEnabled()来查询当前蓝牙设备的状态,如果返回为false,则表示蓝牙设备没有开启,接下来你需要封装一个ACTION_REQUEST_ENABLE请求到intent里面,调用startActivityForResult()方法使能蓝牙设备,例如:
if(!mBluetoothAdapter.isEnabled()){ Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT);}
2.查找设备:
使用BluetoothAdapter类里的方法,你可以查找远端设备(大概十米以内)或者查询在你手机上已经匹配(或者说绑定)的其他手机了。当然需要确定对方蓝牙设备已经开启或者已经开启了“被发现使能”功能(对方设备是可以被发现的是你能够发起连接的前提条件)。如果该设备是可以被发现的,会反馈回来一些对方的设备信息,比如名字、MAC地址等,利用这些信息,你的设备就可以选择去向对方初始化一个连接。
如果你是第一次与该设备连接,那么一个配对的请求就会自动的显示给用户。当设备配对好之后,他的一些基本信息(主要是名字和MAC)被保存下来并可以使用蓝牙的API来读取。使用已知的MAC地址就可以对远端的蓝牙设备发起连接请求。
匹配好的设备和连接上的设备的不同点:匹配好只是说明对方设备发现了你的存在,并拥有一个共同的识别码,并且可以连接。连接上:表示当前设备共享一个RFCOMM信道并且两者之间可以交换数据。也就是是说蓝牙设备在建立RFCOMM信道之前,必须是已经配对好了的。
3.查询匹配好的设备:
在建立连接之前你必须先查询配对好了的蓝牙设备集(你周围的蓝牙设备可能不止一个),以便你选取哪一个设备进行通信,例如你可以你可以查询所有配对的蓝牙设备,并使用一个数组适配器将其打印显示出来:
Set
4.扫描设备:
扫描设备,只需要简单的调用startDiscovery()方法,这个扫描的过程大概持续是12秒,应用程序为了ACTION_FOUND动作需要注册一个BroadcastReceiver来接受设备扫描到的信息。对于每一个设备,系统都会广播ACTION_FOUND动作。例如: // Create a BroadcastReceiver for ACTION_FOUND private final BroadcastReceiver mReceiver = new BroadcastReceiver(){ public void onReceive(Context context, Intent intent){ String action = intent.getAction();// When discovery finds a device if(BluetoothDevice.ACTION_FOUND.equals(action)){ // Get the BluetoothDevice object from the Intent BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);// Add the name and address to an array adapter to show in a ListView mArrayAdapter.add(device.getName()+ “n” + device.getAddress());} } };// Register the BroadcastReceiver IntentFilter filter = new IntentFilter(BluetoothDevice.ACTION_FOUND);registerReceiver(mReceiver, filter);// Don't forget to unregister during onDestroy 注意:扫描的过程是一个很耗费资源的过程,一旦你找到你需要的设备之后,在发起连接请求之前,确保你的程序调用cancelDiscovery()方法停止扫描。显然,如果你已经连接上一个设备,启动扫描会减少你的通信带宽。
5.使能被发现:Enabling discoverability 如果你想使你的设备能够被其他设备发现,将ACTION_REQUEST_DISCOVERABLE动作封装在intent中并调用startActivityForResult(Intent, int)方法就可以了。他将在不使你应用程序退出的情况下使你的设备能够被发现。缺省情况下的使能时间是120秒,当然你可以可以通过添加EXTRA_DISCOVERABLE_DURATION字段来改变使能时间(最大不超过300秒,这是出于对你设备上的信息安全考虑)。例如: Intent discoverableIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE);discoverableIntent.putExtra(BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION, 300);startActivity(discoverableIntent);运行该段代码之后,系统会弹出一个对话框来提示你启动设备使能被发现(此过程中如果你的蓝牙功能没有开启,系统会帮你开启),并且如果你准备对该远端设备发现一个连接,你不需要开启使能设备被发现功能,因为该功能只是在你的应用程序作为服务器端的时候才需要。
6.连接设备:
在应用程序中,想建立两个蓝牙设备之间的连接,必须实现客户端和服务器端的代码(因为任何一个设备都必须可以作为服务端或者客户端)。一个开启服务来监听,一个发起连接请求(使用服务器端设备的MAC地址)。当他们都拥有一个蓝牙套接字在同一RFECOMM信道上的时候,可以认为他们之间已经连接上了。服务端和客户端通过不同的方式或其他们的蓝牙套接字。当一个连接监听到的时候,服务端获取到蓝牙套接字。当客户可打开一个FRCOMM信道给服务器端的时候,客户端获取到蓝牙套接字。
注意:在此过程中,如果两个蓝牙设备还没有配对好的,android系统会通过一个通知或者对话框的形式来通知用户。RFCOMM连接请求会在用户选择之前阻塞。如下图:
7.服务端的连接:
当你想要连接两台设备时,一个必须作为服务端(通过持有一个打开的BluetoothServerSocket),目的是监听外来连接请求,当监听到以后提供一个连接上的BluetoothSocket给客户端,当客户端从BluetoothServerSocket得到BluetoothSocket以后就可以销毁BluetoothServerSocket,除非你还想监听更多的连接请求。
建立服务套接字和监听连接的基本步骤:
首先通过调用listenUsingRfcommWithServiceRecord(String, UUID)方法来获取BluetoothServerSocket对象,参数String代表了该服务的名称,UUID代表了和客户端连接的一个标识(128位格式的字符串ID,相当于PIN码),UUID必须双方匹配才可以建立连接。其次调用accept()方法来监听可能到来的连接请求,当监听到以后,返回一个连接上的蓝牙套接字BluetoothSocket。最后,在监听到一个连接以后,需要调用close()方法来关闭监听程序。(一般蓝牙设备之间是点对点的传输)
注意:accept()方法不应该放在主Acitvity里面,因为它是一种阻塞调用(在没有监听到连接请求之前程序就一直停在那里)。解决方法是新建一个线程来管理。例如: private class AcceptThread extends Thread { private final BluetoothServerSocket mmServerSocket;public AcceptThread(){ // Use a temporary object that is later assigned to mmServerSocket, // because mmServerSocket is final BluetoothServerSocket tmp = null;try { // MY_UUID is the app's UUID string, also used by theclient code tmp = mAdapter.listenUsingRfcommWithServiceRecord(NAME, MY_UUID);} catch(IOException e){ } mmServerSocket = tmp;} public void run(){ BluetoothSocket socket = null;// Keep listening until exception occurs or a socket is returned while(true){ try { socket = mmServerSocket.accept();} catch(IOException e){ break;} // If a connection was accepted if(socket!= null){ // Do work to manage the connection(in a separate thread)manageConnectedSocket(socket);mmServerSocket.close();break;} } } /** Will cancel the listening socket, and cause the thread to finish */ public void cancel(){ try { mmServerSocket.close();} catch(IOException e){ } } }
8.客户端的连接:
为了初始化一个与远端设备的连接,需要先获取代表该设备的一个BluetoothDevice对象。通过BluetoothDevice对象来获取BluetoothSocket并初始化连接,具体步骤:
使用BluetoothDevice对象里的方法createRfcommSocketToServiceRecord(UUID)来获取BluetoothSocket。UUID就是匹配码。然后,调用connect()方法来。如果远端设备接收了该连接,他们将在通信过程中共享RFFCOMM信道,并且connect()方法返回。例如: private class ConnectThread extends Thread { private final BluetoothSocket mmSocket;private final BluetoothDevice mmDevice;public ConnectThread(BluetoothDevice device){ // Use a temporary object that is later assigned to mmSocket, // because mmSocket is final BluetoothSocket tmp = null;mmDevice = device;// Get a BluetoothSocket to connect with the given BluetoothDevice try { // MY_UUID is the app's UUID string, also used by the server code tmp = device.createRfcommSocketToServiceRecord(MY_UUID);} catch(IOException e){ } mmSocket = tmp;}
public void run(){ // Cancel discovery because it will slow down the connection mAdapter.cancelDiscovery();try { // Connect the device through the socket.This will block // until it succeeds or throws an exception mmSocket.connect();} catch(IOException connectException){ // Unable to connect;close the socket and get out try { mmSocket.close();} catch(IOException closeException){ } return;} // Do work to manage the connection(in a separate thread)manageConnectedSocket(mmSocket);}
注意:conncet()方法也是阻塞调用,一般建立一个独立的线程中来调用该方法。在设备discover过程中不应该发起连接connect(),这样会明显减慢速度以至于连接失败。且数据传输完成只有调用close()方法来关闭连接,这样可以节省系统内部资源。
9.管理连接(主要涉及数据的传输):
当设备连接上以后,每个设备都拥有各自的BluetoothSocket。现在你就可以实现设备之间数据的共享了。
1> 首先通过调用getInputStream()和getOutputStream()方法来获取输入输出流。然后通过调用read(byte[])和write(byte[]).方法来读取或者写数据。
2> 实现细节:以为读取和写操作都是阻塞调用,需要建立一个专用现成来管理。3>
private class ConnectedThread extends Thread { private final BluetoothSocket mmSocket;private final InputStream mmInStream;private final OutputStream mmOutStream;public ConnectedThread(BluetoothSocket socket){ mmSocket = socket;InputStream tmpIn = null;OutputStream tmpOut = null;// Get the input and output streams, using temp objects because // member streams are final try { tmpIn = socket.getInputStream();tmpOut = socket.getOutputStream();} catch(IOException e){ } mmInStream = tmpIn;mmOutStream = tmpOut;} public void run(){ byte[] buffer = new byte[1024];// buffer store for the stream int bytes;// bytes returned from read()// Keep listening to the InputStream until an exception occurs while(true){ try { // Read from the InputStream bytes = mmInStream.read(buffer);// Send the obtained bytes to the UI Activity mHandler.obtainMessage(MESSAGE_READ, bytes,-1, buffer).sendToTarget();} catch(IOException e){ break;} } } /* Call this from the main Activity to send data to the remote device */ public void write(byte[] bytes){ try { mmOutStream.write(bytes);} catch(IOException e){ } } /* Call this from the main Activity to shutdown the connection */ public void cancel(){ try { mmSocket.close();} catch(IOException e){ } } }
第五篇:电脑如何连接蓝牙耳机或音箱听音乐和打电话
电脑如何连接蓝牙耳机或音箱听音乐和打电话
较多千月蓝牙软件用户反馈蓝牙耳机使用问题,为此千月技术专家特意整理此方面操作文章,图文并茂的说明千月蓝牙软件连接蓝牙耳机的过程,希望可以给大家解决一些使用上的问题,如果确实有帮助,请多多支持千月,我们会整理更多此类文章来帮忙大家熟悉蓝牙,简化蓝牙使用。
耳机使用说明:
在使用千月连接耳机之前,如果您的耳机连接过手机,请打开手机蓝牙取消手机与耳机之间的配对后,再按照下述步骤进行操作!
第一步:确认千月蓝牙软件安装成功之后,插入适配器或者打开内置的蓝牙开关启动千月,打开千月(BlueSoleil)界面:
第二步:确保您的耳机开启可配对可搜索状态,一般都是长按开机键,指示灯变成红蓝/绿交替闪烁状态,或者是绿色快闪(详细请参考您的耳机说明书:耳机调节成可配对模式)。
第三步:双击中间“小太阳”或者“月亮”(晚上的状态)或者右击选择搜索设备
第四步:搜索到耳机后,耳机图标就会出现在您的界面上
第五步:当耳机图标出现在您的千月界面上后,双击/右击耳机图标进行配对,配对成功后,耳机图标右下角会出现绿色标记。如果在配对过程中提示输入口令,耳机一般默认是0000,如果有其他,请参考您的耳机说明书。(注:配对时,耳机必须还处于可配对状态)
第六步:配对成功后,右击/双击耳机图标,搜索服务。搜索成功后,会显示您的耳机支持几项服务;
第七步:搜索服务成功后,根据您的需要连接所需要的服务。如果您需要听歌,连接听音乐服务,连接后,您就可以听音乐,看电影,看视频,享受蓝牙给您带来的无线体验哦。
第八步:如果您需要语音,请您断开高质量音频服务和单声道耳机服务。右击耳机图标。连接拨打电话服务。连接成功后,您就可以和您的家人或者朋友进行语音通话了。
(责任编辑:千月技术专家--Yin)