当前位置:首页 > 代码 > 正文

android蓝牙聊天源代码(安卓蓝牙通讯源代码)

admin 发布:2022-12-19 21:00 157


本篇文章给大家谈谈android蓝牙聊天源代码,以及安卓蓝牙通讯源代码对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

android源代码idreammanager在什么地方定义的

Google提供的Android包含了原始Android的目标机代码,主机编译工具、仿真环境,下载的代码包经过解压后(这里是Android2.2的源码包),源代码的第一层目录结构如下:

|-- Makefile

|-- bionic (bionic C库)

|-- bootable (启动引导相关代码)

|-- build (存放系统编译规则及generic等基础开发包配置)

|-- cts (Android兼容性测试套件标准)

|-- dalvik (dalvik JAVA虚拟机)

|-- development (应用程序开发相关)

|-- external (android使用的一些开源的模组)

|-- frameworks (核心框架——java及C++语言)

|-- hardware (主要保护硬解适配层HAL代码)

|-- libcore

|-- ndk

|-- device

|-- out (编译完成后的代码输出与此目录)

|-- packages (应用程序包)

|-- prebuilt (x86和arm架构下预编译的一些资源)

|-- sdk (sdk及模拟器)

|-- system (文件系统库、应用及组件——C语言)

`-- vendor (厂商定制代码)

bionic 目录

|-- libc (C库)

| |-- arch-arm (ARM架构,包含系统调用汇编实现)

| |-- arch-x86 (x86架构,包含系统调用汇编实现)

| |-- bionic (由C实现的功能,架构无关)

| |-- docs (文档)

| |-- include (头文件)

| |-- inet

| |-- kernel (Linux内核中的一些头文件)

| |-- netbsd (?netbsd系统相关,具体作用不明)

| |-- private (?一些私有的头文件)

| |-- stdio (stdio实现)

| |-- stdlib (stdlib实现)

| |-- string (string函数实现)

| |-- tools (几个工具)

| |-- tzcode (时区相关代码)

| |-- unistd (unistd实现)

| `-- zoneinfo (时区信息)

|-- libdl (libdl实现,dl是动态链接,提供访问动态链接库的功能)

|-- libm (libm数学库的实现,)

| |-- alpha (apaha架构)

| |-- amd64 (amd64架构)

| |-- arm (arm架构)

| |-- bsdsrc (?bsd的源码)

| |-- i386 (i386架构)

| |-- i387 (i387架构?)

| |-- ia64 (ia64架构)

| |-- include (头文件)

| |-- man (数学函数,后缀名为.3,一些为freeBSD的库文件)

| |-- powerpc (powerpc架构)

| |-- sparc64 (sparc64架构)

| `-- src (源代码)

|-- libstdc++ (libstdc++ C++实现库)

| |-- include (头文件)

| `-- src (源码)

|-- libthread_db (多线程程序的调试器库)

| `-- include (头文件)

`-- linker (动态链接器)

`-- arch (支持arm和x86两种架构)

bootable 目录

|-- bootloader (适合各种bootloader的通用代码)

| `-- legacy (估计不能直接使用,可以参考)

| |-- arch_armv6 (V6架构,几个简单的汇编文件)

| |-- arch_msm7k (高通7k处理器架构的几个基本驱动)

| |-- include (通用头文件和高通7k架构头文件)

| |-- libboot (启动库,都写得很简单)

| |-- libc (一些常用的c函数)

| |-- nandwrite (nandwirte函数实现)

| `-- usbloader (usbloader实现)

|-- diskinstaller (android镜像打包器,x86可生产iso)

`-- recovery (系统恢复相关)

|-- edify (升级脚本使用的edify脚本语言)

|-- etc (init.rc恢复脚本)

|-- minui (一个简单的UI)

|-- minzip (一个简单的压缩工具)

|-- mtdutils (mtd工具)

|-- res (资源)

| `-- images (一些图片)

|-- tools (工具)

| `-- ota (OTA Over The Air Updates升级工具)

`-- updater (升级器)

build目录

|-- core (核心编译规则)

|-- history (历史记录)

|-- libs

| `-- host (主机端库,有android “cp”功能替换)

|-- target (目标机编译对象)

| |-- board (开发平台)

| | |-- emulator (模拟器)

| | |-- generic (通用)

| | |-- idea6410 (自己添加的)

| | `-- sim (最简单)

| `-- product (开发平台对应的编译规则)

| `-- security (密钥相关)

`-- tools (编译中主机使用的工具及脚本)

|-- acp (Android "acp" Command)

|-- apicheck (api检查工具)

|-- applypatch (补丁工具)

|-- apriori (预链接工具)

|-- atree (tree工具)

|-- bin2asm (bin转换为asm工具)

|-- check_prereq (检查编译时间戳工具)

|-- dexpreopt (模拟器相关工具,具体功能不明)

|-- droiddoc (?作用不明,java语言,网上有人说和JDK5有关)

|-- fs_config (This program takes a list of files and directories)

|-- fs_get_stats (获取文件系统状态)

|-- iself (判断是否ELF格式)

|-- isprelinked (判断是否prelinked)

|-- kcm (按键相关)

|-- lsd (List symbol dependencies)

|-- releasetools (生成镜像的工具及脚本)

|-- rgb2565 (rgb转换为565)

|-- signapk (apk签名工具)

|-- soslim (strip工具)

`-- zipalign (zip archive alignment tool)

dalvik目录 dalvik虚拟机

.

|-- dalvikvm (main.c的目录)

|-- dexdump (dex反汇编)

|-- dexlist (List all methods in all concrete classes in a DEX file.)

|-- dexopt (预验证与优化)

|-- docs (文档)

|-- dvz (和zygote相关的一个命令)

|-- dx (dx工具,将多个java转换为dex)

|-- hit (?java语言写成)

|-- libcore (核心库)

|-- libcore-disabled (?禁用的库)

|-- libdex (dex的库)

|-- libnativehelper (Support functions for Android's class libraries)

|-- tests (测试代码)

|-- tools (工具)

`-- vm (虚拟机实现)

development 目录 (开发者需要的一些例程及工具)

|-- apps (一些核心应用程序)

| |-- BluetoothDebug (蓝牙调试程序)

| |-- CustomLocale (自定义区域设置)

| |-- Development (开发)

| |-- Fallback (和语言相关的一个程序)

| |-- FontLab (字库)

| |-- GestureBuilder (手势动作)

| |-- NinePatchLab (?)

| |-- OBJViewer (OBJ查看器)

| |-- SdkSetup (SDK安装器)

| |-- SpareParts (高级设置)

| |-- Term (远程登录)

| `-- launchperf (?)

|-- build (编译脚本模板)

|-- cmds (有个monkey工具)

|-- data (配置数据)

|-- docs (文档)

|-- host (主机端USB驱动等)

|-- ide (集成开发环境)

|-- ndk (本地开发套件——c语言开发套件)

|-- pdk (Plug Development Kit)

|-- samples (演示程序)

| |-- AliasActivity ()

| |-- ApiDemos (API演示程序)

| |-- BluetoothChat (蓝牙聊天)

| |-- BrowserPlugin (浏览器插件)

| |-- BusinessCard (商业卡)

| |-- Compass (指南针)

| |-- ContactManager (联系人管理器)

| |-- CubeLiveWall** (动态壁纸的一个简单例程)

| |-- FixedGridLayout (像是布局)

| |-- GlobalTime (全球时间)

| |-- HelloActivity (Hello)

| |-- Home (Home)

| |-- JetBoy (jetBoy游戏)

| |-- LunarLander (貌似又是一个游戏)

| |-- MailSync (邮件同步)

| |-- MultiResolution (多分辨率)

| |-- MySampleRss (RSS)

| |-- NotePad (记事本)

| |-- RSSReader (RSS阅读器)

| |-- SearchableDictionary (目录搜索)

| |-- **JNI (JNI例程)

| |-- SkeletonApp (空壳APP)

| |-- Snake (snake程序)

| |-- SoftKeyboard (软键盘)

| |-- Wiktionary (?维基)

| `-- Wiktionary**(?维基例程)

|-- scripts (脚本)

|-- sdk (sdk配置)

|-- simulator (?模拟器)

|-- testrunner (?测试用)

`-- tools (一些工具)

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()方法打开。接着我们再设置手机蓝牙设备的可见,可见时间可以自定义。

Android-Ble蓝牙开发Demo示例–扫描,连接,发送和接收数据,分包解包(附源码)

万物互联的物联网时代的已经来临,ble蓝牙开发在其中扮演着举重若轻的角色。最近刚好闲一点,抽时间梳理下这块的知识点。

涉及ble蓝牙通讯的客户端(开启、扫描、连接、发送和接收数据、分包解包)和服务端(初始化广播数据、开始广播、配置Services、Server回调操作)整个环节以及一些常见的问题即踩过的一些坑。

比如

1、在Android不同版本或不同手机的适配问题,扫描不到蓝牙设备

2、如何避免ble蓝牙连接出现133错误?

3、单次写的数据大小有20字节限制,如何发送长数据

蓝牙有传统(经典)蓝牙和低功耗蓝牙BLE(Bluetooth Low Energy)之分,两者的开发的API不一样,本文主讲Ble蓝牙开发,传统蓝牙不展开,有需要的可以自行了解。

相对传统蓝牙,BLE低功耗蓝牙,主要特点是快速搜索,快速连接,超低功耗保持连接和数据传输。

客户端

服务端

Android4.3(API Level 18)开始引入BLE的核心功能并提供了相应的 API。应用程序通过这些 API 扫描蓝牙设备、查询 services、读写设备的 characteristics(属性特征)等操作。

BLE蓝牙协议是GATT协议, BLE相关类不多, 全都位于android.bluetooth包和android.bluetooth.le包的几个类:

android.bluetooth.

.BluetoothGattService 包含多个Characteristic(属性特征值), 含有唯一的UUID作为标识

.BluetoothGattCharacteristic 包含单个值和多个Descriptor, 含有唯一的UUID作为标识

.BluetoothGattDescriptor 对Characteristic进行描述, 含有唯一的UUID作为标识

.BluetoothGatt 客户端相关

.BluetoothGattCallback 客户端连接回调

.BluetoothGattServer 服务端相关

.BluetoothGattServerCallback 服务端连接回调

android.bluetooth.le.

.AdvertiseCallback 服务端的广播回调

.AdvertiseData 服务端的广播数据

.AdvertiseSettings 服务端的广播设置

.BluetoothLeAdvertiser 服务端的广播

.BluetoothLeScanner 客户端扫描相关(Android5.0新增)

.ScanCallback 客户端扫描回调

.ScanFilter 客户端扫描过滤

.ScanRecord 客户端扫描结果的广播数据

.ScanResult 客户端扫描结果

.ScanSettings 客户端扫描设置

BLE设备分为两种设备: 客户端(也叫主机/中心设备/Central), 服务端(也叫从机/外围设备/peripheral)

客户端的核心类是 BluetoothGatt

服务端的核心类是 BluetoothGattServer 和 BluetoothLeAdvertiser

BLE数据的核心类是 BluetoothGattCharacteristic 和 BluetoothGattDescriptor

下面详细讲解下客户端和服务端的开发步骤流程

安卓手机涉及蓝牙权限问题,蓝牙开发需要在AndroidManifest.xml文件中添加权限声明:

在搜索设备之前需要询问打开手机蓝牙:

注意: BLE设备地址是动态变化(每隔一段时间都会变化),而经典蓝牙设备是出厂就固定不变了!

通过扫描BLE设备,根据设备名称区分出目标设备targetDevice,下一步实现与目标设备的连接,在连接设备之前要停止搜索蓝牙;停止搜索一般需要一定的时间来完成,最好调用停止搜索函数之后加以100ms的延时,保证系统能够完全停止搜索蓝牙设备。停止搜索之后启动连接过程;

BLE蓝牙的连接方法相对简单只需调用connectGatt方法;

参数说明

与设备建立连接之后与设备通信,整个通信过程都是在BluetoothGattCallback的异步回调函数中完成;

BluetoothGattCallback中主要回调函数如下:

上述几个回调函数是BLE开发中不可缺少的;

当调用targetdDevice.connectGatt(context, false, gattCallback)后系统会主动发起与BLE蓝牙设备的连接,若成功连接到设备将回调onConnectionStateChange方法,其处理过程如下:

判断newState == BluetoothGatt.STATE_CONNECTED表明此时已经成功连接到设备;

mBluetoothGatt.discoverServices();

扫描BLE设备服务是安卓系统中关于BLE蓝牙开发的重要一步,一般在设备连接成功后调用,扫描到设备服务后回调onServicesDiscovered()函数,函数原型如下:

BLE蓝牙开发主要有负责通信的BluetoothGattService完成的。当且称为通信服务。通信服务通过硬件工程师提供的UUID获取。获取方式如下:

具体操作方式如下:

开启监听,即建立与设备的通信的首发数据通道,BLE开发中只有当客户端成功开启监听后才能与服务端收发数据。开启监听的方式如下:

BLE单次写的数据量大小是有限制的, 通常是20字节 ,可以尝试通过requestMTU增大,但不保证能成功。分包写是一种解决方案,需要定义分包协议,假设每个包大小20字节,分两种包,数据包和非数据包。对于数据包,头两个字节表示包的序号,剩下的都填充数据。对于非数据包,主要是发送一些控制信息。

监听成功后通过向 writeCharacteristic写入数据实现与服务端的通信。写入方式如下:

其中:value一般为Hex格式指令,其内容由设备通信的蓝牙通信协议规定;

若写入指令成功则回调BluetoothGattCallback中的onCharacteristicWrite()方法,说明将数据已经发送给下位机;

若发送的数据符合通信协议,则服务端会向客户端回复相应的数据。发送的数据通过回调onCharacteristicChanged()方法获取,其处理方式如下:

通过向服务端发送指令获取服务端的回复数据,即可完成与设备的通信过程;

当与设备完成通信之后之后一定要断开与设备的连接。调用以下方法断开与设备的连接:

源码上传在CSDN上了,有需要的可以借鉴。

===== Android蓝牙Ble通讯Demo示例源码–扫描,连接,发送和接收数据,分包解包

BLE单次写的数据量大小是有限制的,通常是20字节,可以尝试通过requestMTU增大,但不保证能成功。分包写是一种解决方案,需要定义分包协议,假设每个包大小20字节,分两种包,数据包和非数据包。对于数据包,头两个字节表示包的序号,剩下的都填充数据。对于非数据包,主要是发送一些控制信息。

总体流程如下:

1、定义通讯协议,如下(这里只是个举例,可以根据项目需求扩展)

2、封装通用发送数据接口(拆包)

该接口根据会发送数据内容按最大字节数拆分(一般20字节)放入队列,拆分完后,依次从队列里取出发送

3、封装通用接收数据接口(组包)

该接口根据从接收的数据按协议里的定义解析数据长度判读是否完整包,不是的话把每条消息累加起来

4、解析完整的数据包,进行业务逻辑处理

5、协议还可以引入加密解密,需要注意的选算法参数的时候,加密后的长度最好跟原数据长度一致,这样不会影响拆包组包

一般都是Android版本适配以及不同ROM机型(小米/红米、华为/荣耀等)(EMUI、MIUI、ColorOS等)的权限问题

蓝牙开发中有很多问题,要静下心分析问题,肯定可以解决的,一起加油;

如何通过android代码实现两部手机通过蓝牙连接聊天

如何正确使用蓝牙耳机一、开机。在没有开机的情况下,只需要一直按住开机键10秒左右,当二级指示灯长亮或者红、蓝两色灯交替闪烁即为开机。中途看到蓝牙指示灯一闪一闪不要松手。当蓝牙跟配对设备连接之后指示灯才会变成一闪一闪的。二、配对。耳机正常开机后,手机搜索蓝牙设备,一般可以在5秒钟左右的时间可以搜索到耳机,然后在手机上选择你找到的蓝牙耳机设备,手机会提示你输入密码。通用密码0000.三、连接。当手机搜索到耳机,同时你也正确输入了密码后,并不是说你的手机就可以用蓝牙耳机了,有很多手机在找到蓝牙设备后还需要和耳机进行连接。四、充电。蓝牙耳机的充电时间一般都在2小时左右,大多数蓝牙耳机充电时红灯亮,充满后灯灭。疑难问题解决:1.手机无法搜索到蓝牙耳机解决方法:①确认蓝牙是否开机(是否指示灯常亮或红、蓝指示灯交替闪烁);②如果蓝牙已开机仍无法搜到,请重启蓝牙和手机。2.蓝牙耳机和手机连接之后总是断线或是有杂音解决方法:①蓝牙耳机电力不足,需要尽快给蓝牙耳机充电;②手机和蓝牙之间有阻隔或距离超出信号接收距离,请不要用手捂住蓝牙,为了保持信号的连续稳定性,请尽量保持蓝牙和手机在同一方向。3.蓝牙已连接,但是不能听歌解决方法;①单声道蓝牙耳机仅在配对诺基亚手机时可以用蓝牙听音乐,如果你用的不是诺基亚的手机,是不能用单声道蓝牙听音乐的;②检查蓝牙设置,声音路径转到免提装置;③部分国产手机和山寨手机还需要进入播放器设置两个地方,在播放器里把蓝牙功能开启并在下面一个耳麦的图标里选择刚连接的蓝牙设备点击确定即可。④个别国产手机没有完整立体声蓝牙模块,没有蓝牙听音乐功能。可用蓝牙连接其他手机检测该蓝牙耳机是否可用。4.如何用蓝牙耳机在电脑上听歌和语音聊天解答:如果你的电脑自带蓝牙,打开蓝牙功能搜索正开启的蓝牙就行;不然就需要一个蓝牙适配器,适配器的作用是连接蓝牙耳机和电脑,通过一个蓝牙小软件BlueSoleil就可以实现与电脑连接。XP系统可自动识别任何蓝牙适配器,无需驱动程序,但是XP自带的适配器软件只能传输文件,不能传输音频。必须安装光盘里自带的BlueSoleil这个软件传输音频。1、我的手机能使用蓝牙吗?答:蓝牙是一种世界标准的协议,只要你的手机有蓝牙功能,都能使用蓝牙耳机、蓝牙免提等蓝牙手机配件。常见的几个主要品牌的手机,可以去其网站查看自己的手机是否支持蓝牙。2、我怎样选择蓝牙耳机?答:首先是选择品牌的蓝牙耳机,无论从质量还是售后服务都可以保证,其次是选择音质和待机时间长的蓝牙耳机,因为耳机的寿命实际就是蓝牙耳机电池的寿命,电池的寿命是由充电的次数多少决定的,所以待机时间越长的蓝牙耳机其使用寿命就会越长。3、蓝牙耳机使用简单吗?答:蓝牙耳机使用很简单,比手机使用简单得多了。蓝牙耳机使用前,先要跟手机配对,简单的配对过程介绍:先按住耳机的多功能按钮(说明书有说)几秒钟,耳机的指示灯会变为红兰交替闪烁(大部分的耳机),再用手机搜索蓝牙设备,手机找到后会显示所找到的蓝牙名称,输入配对密码(一般是0000)后接着按手机的确定按键,那配对过程就这样简单的完成了。立体声的蓝牙耳机部分手机需要在蓝牙设备内进行再次连接才可以正常使用立体声来听音乐。蓝牙耳机的按键不多,大部分只有音量按钮、接电话/挂机按钮,所以使用是很简单的。部分立体声的蓝牙耳机会增加AV控制键,即控制上首歌和下一首歌的播放。4、使用时,最多可距离手机和多功能适配器多远?答:耳机和手机或多功能适配器的有效工作范围一般可达30英尺(10米)。一般来说,中间没有障碍物时,它们之间的连接效果最佳。当手机距离耳机达极限时,通话时会听到轻微的噪音。虽然现在有的适配器有效距离为100米,但是当与10米的蓝牙耳机连接后,使用的有效距离还是10米。5、蓝牙的配对密码是多少?答:蓝牙的配对密码一般是0000或者是12346、蓝牙耳机有辐射问题么?答:辐射值仅为手机的几十分之一,几乎可以忽略不计较,属于辐射免检产品,大可放心使用,属于绿色环保使用手机方式,在欧美已经颇为流行。7、耳机是否会干扰车载电子设备,收音机或计算机?答:耳机产生的无线电波功率远远小于普通的移动电话,所发射的信号符合国际蓝牙标准。因此,不应该对标准的消费级电子设备产生任何干扰。8、用无线耳机进行通话,会受到什么干扰吗?为什么有时耳机里会有杂音或类似“静电噪声”产生?答:类似无绳电话,无线网络设备等用器具可能会对你的通话产生干扰,通常会在通话时出现噼啪声。少数情况下,干扰会让耳机完全不能通话。为了减少干扰,请将耳机远离那些使用或发射无线电波的设备。耳机里的杂音或“静电躁声”起源于多方面因素。其中大多数原因是因为手机和耳机之间无线电信号干扰而引起的。要提高通话效果,你要尽量保持手机和耳机之间没有无线电信号的干扰,同时尽量保证它们在传输信号的过程中没有任何阻碍,呈顺畅状态。我们有以下几点建议供参考:1)耳机和手机的佩带方向尽量保持在身体的同一侧;2)避免手机放在提包内(帆布包产生的阻碍会少一些,皮包或公文包产生的阻碍会多一些)。9、其它蓝牙手机用户是否会听到我的通话内容?答:耳机与蓝牙手机配对,会建立仅供这两个蓝牙设备使用的专用链接路线。根据耳机所采用的蓝牙技术,第三方是不容易监听到通话内容的。而且蓝牙无线信号的射频功率远远小于普通的移动电话,所以这些信号很难被第三方侦查到。10、当手机与蓝牙耳机超出有效距离后会怎样?答:当手机与蓝牙耳机超出有效距离后,蓝牙耳机与手机的连接会自动断开。当回到有效距离内时,耳机会自动与手机连接,不需要任何设置。但是部分手机不支持该项功能,需要在设备列表内找到蓝牙设备选择连接即可。11、蓝牙耳机为什么不能听歌?答:目前很多新出的手机只能支持立体声蓝牙耳机,其内置了A2DP功能,如果你还是使用单耳的耳机,将不能收听手机上的歌曲。手机的蓝牙版本较低,不支持蓝牙传送音频。基本上,2005年之前出的手机都没有用蓝牙听歌的功能。部分手机可以用单耳或者双耳立体声蓝牙耳机听歌,但是听到的是单声道音乐。例如诺基亚的7610/N70等,这些手机是可以通过加装蓝牙播放器实现立体声功能的。12、如何实现音乐与接听电话的切换?答:1、将耳机开到配对状态(即红兰指示灯交替闪烁)。2、选择与手机连接。3、将蓝牙耳机关机。4、将蓝牙耳机再次开到配对状态。5、选择与电脑或者MP3连接,当有电话拨入时,音乐自动断开,蓝牙耳机会转到电话功能。结束通话,短按多功能键,音乐自动接入。当拨入电话方结束通话时,无需任何操作,音乐自动接入。13、如何确认手机,个人电脑,个人数字助理器,手提电脑是否与蓝牙耳机兼容?答:蓝牙耳机可以与所有带蓝牙1.1或更高版本并支持耳机和/或免提应用规范的设备配合使用。这只是对蓝牙耳机与你的设备之间的沟通提供了基本的技术。但并不能保证你能够通过耳机的操作来控制设备。随着蓝牙技术越来越普及,越来越多设备的厂商将在蓝牙技术的执行中支持耳机或免提应用规范。14、蓝牙耳机与支持蓝牙功能的手机绑定成功后,为什么耳机不能正常使用?答:在您拨打电话前,必须先将耳机和话机连接起来。先在话机中找到蓝牙耳机设备列表,在属性或选项中,选择“连接”。如果还不能正常使用耳机设备,请在话机上删除该蓝牙设备,并重新进行绑定作。15、如何调节耳机音量?答:重复多次按音量键上端,可将音量提高至所需音量。重复多次按音量键下端,可将音量降低至所需音量。当音量至极限时会有提示音。16、如何鉴别高仿和原装的蓝牙耳机?答:耳机戴在左耳朵上,然后用手将耳机捂住,再把手机放到身体背后拨打电话。这样就等于是给耳机和手机之间人为增加了2道屏障,如果通话效果还是可以的话,证明耳机是原装的。当然这首先要建立在耳机和手机的兼容性良好的前提下。一般情况下,高仿耳机马上会没有信号,部分原装耳机会有明显的杂音。另外还可以通过距离测试。戴上耳机走出手机之外的5米左右,如果通话没有杂音或者仅有轻微杂音,证明耳机是原装的。如果走出2-3米,杂音就很明显,甚至走动的时候无法正常接打电话,那无疑就是仿制品了。大家购买耳机的时候掌握了以上2点辨别方法就基本不会上当了。17、蓝牙耳机和手机连接之后总是断线?答:蓝牙耳机电力耗尽,需要尽快给蓝牙耳机充电。另外还有可能是蓝牙耳机和手机的兼容性不是很好,手机发射的蓝牙信号不能很好的被耳机接收,一旦耳机和手机之间有阻隔或者是距离稍远些,耳机就自动断开和手机的连接,继而自动关机。18、蓝牙耳机电池是否能换,寿命是多少?答:蓝牙耳机的电池大部分是内置锂电池(有少部分是蓝牙耳机是用7号电池外),电池不能更换,电池充电次数大约在300次左右。按照每次使用5天,可以使用1500天,也是大约3到4年,一款蓝牙用3年也可以淘汰了,所以不必要担心蓝牙耳机电池失效的问题。19、如何给蓝牙耳机充电?答:1、将充电器插头插进耳机中,将充电器带有释放标签的一面朝下,耳机的正面朝上。2、将充电器的另一端插进电源插座中,充电时,耳机的指示器亮起直至充电结束。第一次充电时间大约需要8个小时,以后充电1.5小时左右。3、当充电结束时(指示灯关闭),从电源插座中取下充电器,按充电器插头上的释放键,将充电器从耳机中取下。注:您在驾驶车辆时,可用原装的车载电源适配器来给耳机充电。另外还可以选择用电脑的USB口充电。20、蓝牙耳机可以连接多少种外接设备?答:蓝牙耳机总共可以储存8种不同蓝牙外接设备链接信息。该信息按先后顺序存储在“外接设备列表”中。当外接设备超出8种时,新设备信息将替换列表中原有的旧设备信息。当外接设备为列表中已有设备时,将会启动该链接的初始设置。耳机会自动连接上一次设置的外接设备。如果您想将耳机与外接设备列表中的其它蓝牙设备连接,可以进入“设备列表”内,选择连接即可,无需输入密码。无论何时启动耳机与列表中的外接设备链接,该外接设备都将成为“上一次”连接设备。立体声蓝牙耳机可以同时连接两种蓝牙设备(限于手机与电脑或者手机与MP3)。

Android蓝牙开发——实现蓝牙聊天

与蓝牙开发主要的相关类是以下四个

知道对应API后就可以进行对应的蓝牙开发,这里以获取蓝牙设备为例子

}

搜索设备的回调则需要通过注册广播的形式来获取

定义广播

之后就可以进行个人的一些操作

要实现蓝牙聊天则涉及到蓝牙之间的传输通信,前面也说到了,这里肯定就是用到BluetoothServerSocket以及BluetoothSocket。

蓝牙传输通信相当于服务器端与客户端之间的通信,只不过不同是这里每一个蓝牙设备本身自己 既充当服务器端也充当客户端 ,大致的关系就是

注意,这些连接都是阻塞式的,都要放在线程里去执行。

可以看到,当BluetoothServerSocket监听到有设备连接的时候,就会调用dataTransfer开启一个数据传输。

需要一个ConnectThread来发起

之后建立连接之后就会调用dataTransfer来进行数据传输,同样也需要一个线程来维护数据传输

蓝牙聊天则是基于上面三个线程来进行实现,同样,对于蓝牙文件间的传输也是同个道理,通过输入输出流来进行处理。之后的操作就比较容易处理了

蓝牙聊天

Android 蓝牙开发基本流程

关于android蓝牙聊天源代码和安卓蓝牙通讯源代码的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

版权说明:如非注明,本站文章均为 AH站长 原创,转载请注明出处和附带本文链接;

本文地址:http://ahzz.com.cn/post/23923.html


取消回复欢迎 发表评论:

分享到

温馨提示

下载成功了么?或者链接失效了?

联系我们反馈

立即下载