arduino蓝牙电子锁_第1页
arduino蓝牙电子锁_第2页
arduino蓝牙电子锁_第3页
arduino蓝牙电子锁_第4页
arduino蓝牙电子锁_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、物联网应用系统设计报告 成 绩 专业班级 物联网二班 姓 名 马祥博 同组成员 霍鑫磊 马祥博 董方旭 瞿炀炀 宁磊 学 号 1407040210 目录一项目名称2二,背景简介3三开发平台31.Arduino平台32.eclipse+ADT 23.0.6+SDK 5.0.13四情景模式4五总体设计5六功能模块51.硬件清单52.功能设计说明53.蓝牙控制模块54.温湿度采集模块65.LCD显示模块76. 安卓移动端8七创新点9八心得体会91.遇到的问题92.体会9九arduno源码9十安卓源码11一项目名称智能门锁智能门锁是指区别于传统机械锁的基础上改进的,在用户安全性、识别、管理性方面更加智

2、能化,简便化的门锁。二,背景简介伴随互联网时代的快速发展,智能家居设备已经走入了千家万户,门锁作为家庭生活的第一道入口。在人工智能时代,也经历了从普通的机械锁到具备更强大安全性能的智能锁的迭代升级。门锁智能化在今天已经不仅仅是一种生活态度,更是一种生活方式,为人们的出行,安全等方面带来了极大的便利。随着科学技术的不断进步,人们对现代化办公和生活场所提出了更高层次的安全管理需求,普通的门锁系统和手工出入管理已经不符合现代人的实际需求。由于安防业的智能化和网络化,为顺应智能楼宇、智能小区的发展,门禁系统也必须实现更可靠、更安全和更方便的智能系统。现代门禁系统综合利用了传感技术、数字信息处理、计算机

3、技术、多媒体技术和网络技术,以实现门禁系统信息的采集、传输和处理。目前智能门锁已广泛用于工厂、学校、写字楼宇、物业小区、商店、金融系统、电信系统、军事系统、宾馆等多种场合,大大提高了整体的工作效率、保障了系统安全,智能、安全和高效的现代化门禁系统已经成为社会发展的必然趋势,同时它也是现代化建筑的一个重要组成部分。三开发平台1.Arduino平台Arduino是一款便捷灵活、方便上手的开源电子原型平台。包含硬件和软件。它构建于开放原始码simple I/O介面版,并且具有使用类似Java、C语言的Processing/Wiring开发环境。Arduino主要包含两个主要的部分:硬件部分是可以用来

4、做电路连接的Arduino电路板;另外一个则是Arduino IDE,计算机中的程序开发环境。只要在IDE中编写程序代码,将程序上传到Arduino电路板后,程序便会告诉Arduino电路板要做些什么了。平台特点:Arduino能通过各种各样的传感器来感知环境,通过控制灯光、马达和其他的装置来反馈、影响环境。板子上的微控制器可以通过Arduino的编程语言来编写程序,编译成二进制文件,烧录进微控制器。对Arduino的编程是利用 Arduino编程语言 (基于 Wiring)和Arduino开发环境(基于 Processing)来实现的。基于Arduino的项目,可以只包含Arduino,也可

5、以包含Arduino和其他一些在PC上运行的软件,他们之间进行通信来实现。(1)跨平台Arduino IDE可以在Windows、Macintosh OS X、Linux三大主流操作系统上运行,而其他的大多数控制器只能在Windows上开发。(2)简单清晰Arduino IDE基于processing IDE开发。对于初学者来说,极易掌握,同时有着足够的灵活性。Arduino语言基于wiring语言开发,是对 avr-gcc库的二次封装,不需要太多的单片机基础、编程基础,简单学习后,你也可以快速的进行开发。(3)开放性Arduino的硬件原理图、电路图、IDE软件及核心库文件都是开源的,在开源

6、协议范围内里可以任意修改原始设计及相应代码。2.eclipse+ADT 23.0.6+SDK 5.0.1Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。但是Eclipse 附带了一个标准的插件集,包括Java开发工具。Eclipse主要由Eclipse项目、Eclipse工具项目和Eclipse技术项目三个项目组成,具体包括四个部分组成Eclipse Platform、JDT、CDT和PDE。JDT支持Java开发、CDT支持C开发、PDE用来支持插件开发,Eclipse Platform则是一个开放的可扩

7、展IDE,提供了一个通用的开发平台。它提供建造块和构造并运行集成软件开发工具的基础。Eclipse Platform允许工具建造者独立开发与他人工具无缝集成的工具从而无须分辨一个工具功能在哪里结束,而另一个工具功能在哪里开始。Eclipse SDK(软件开发者包)是Eclipse Platform、JDT和PDE所生产的组件合并,它们可以一次下载。这些部分在一起提供了一个具有丰富特性的开发环境,允许开发者有效地建造可以无缝集成到Eclipse Platform中的工具。Eclipse SDK由Eclipse项目生产的工具和来自其它开放源代码的第三方软件组合而成。Eclipse项目生产的软件以

8、GPL发布,第三方组件有各自自身的许可协议。四情景模式1.引用智能手机上进行操控如android系统平台进行远程控制,只需要在手机上安装移动应用端点击开门或关门进行控制,门锁就会为你自动打开或关闭 。2.你以后再也不必担心你忘了带钥匙或者钥匙丢失而烦恼,你的家人也可以通过安装移动应用端来进行开锁。3.对于安全,蓝牙智能门锁有更完善的保护机制,只有授权过的人即拥有开锁密钥的人才能开锁,上锁。4 .在以下场所应用较多:。银行,政府部门(注重安全性),酒店,学校宿舍,居民小区,别墅,宾馆,管理更加方便。5.智能门锁主要应用于智能家居、智能旅店/酒店、智能建筑等系统中。五总体设计1.系统结构智能门锁,

9、相对于普通的门锁,具有支持蓝牙连接,周围环境温湿度的感知以及将信息发送给用户等功能,适用于普通家居以及密闭空间等场景。智能门锁系统结构如图所示用户手机终端门锁开关智能门锁LCD显示蓝牙配对连接向Arduino发送开关命令Arduino 通过舵机控制门锁开关LCD上面显示门的状态传感器传回Arduino所收集的数据。Arduino接收传感器数据并进行处理计算显示在LCD屏幕上整体图片:2.基本组成1)管理中心:一台智能机,通过蓝牙与门锁连接,实现门锁信息的信息的处理和分析,并发送控制指令,以及对相应的软件管理。2)arduino板:管理各个模块采集到的数据,实现分析处理以及与终端通信的功能。3)

10、温湿度传感器:用于周围温湿度的采集、传输和处理,4)电子门锁:门禁系统的执行机构和关键设备,用于对物理通道的控制。5)电力设备:采用直流电源作为整个系统的运行电源和门锁电源。6)LED显示器:可以显示目前门锁的状态以及周围环境的温湿度。3.功能特点1)采用高效的蓝牙单独配对,可快速开锁,使用方便快捷,具有很高的安全性。2)可以感知环境的温湿度,直接了解是否需要增添衣物。3)系统APP连接,实现高效安全的管理。六功能模块1.硬件清单器件数量Arduino UNO开发板1蓝牙模块1LCD显示屏1温湿度传感器11602IIC模块1继电器1电磁锁1电源线1杜邦线若干2.功能设计说明结合实际需求、将系统

11、分为四个主要功能模块,即蓝牙控制模块,温湿度采集模块,LCD显示模块、安卓移动端。3.蓝牙控制模块蓝牙核心模块使用HC-06模块,引出接口包括VCC,GND,TXD,RXD,预留LED状态输出脚,单片机可通过该脚状态判断蓝牙是否已经连接,led指示连接状态,闪烁表示没有蓝牙连接,常亮表示蓝牙已连接并打开了端口,输入电压3.66V,未配对时电流约30mA,配对后约10mA,输入电压禁止超过7V,在未建立蓝牙连接时支持通过AT指令设置波特率、名称、配对密码,设置的参数掉电保存。蓝牙连接以后自动切换到透传模式。VCC:接Arduino的5V。GND:接Arduino的GND。TXD:发送端,一般表示

12、为自己的发送端,接Arduino的RX。RXD:接收端,一般表示为自己的接收端,接Arduino的TX。正常通信时候本身的TXD永远接设备的RXD!正常通信时RXD接其他设备的TXD,线接好后,把Arduino上电后,led指示灯是闪烁的,表明没有设备连接上,LED常亮,已经和Android手机连接。蓝牙模块正面图:蓝牙模块反面图:4.温湿度采集模块温湿度采集模块采用的是数字温湿度传感器DHT11。DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器。它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性与卓越的长期稳定性。传感器包括一个电阻式感湿元件和一个

13、NTC测温元件,并与一个高性能8位单片机相连接。因此该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。每个DHT11传感器都在极为精确的湿度校验室中进行校准。校准系数以程序的形式储存在OTP内存中,传感器内部在检测信号的处理过程中要调用这些校准系数。单线制串行接口,使系统集成变得简易快捷。超小的体积、极低的功耗,信号传输距离可达20米以上,使其成为各类应用甚至最为苛刻的应用场合的最佳选则。产品为4 针单排引脚封装。连接方便,特殊封装形式可根据用户需求而提供。接口说明:引脚说明:5.LCD显示模块LCD显示模块采用LCD1602。1602液晶也叫1602字符型液晶,它是一种专门用来显

14、示字母、数字、符号等的点阵型液晶模块。它由若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用。1602LCD是指显示的内容为16X2,即可以显示两行,每行16个字符液晶模块(显示字符和数字)。1602采用标准的16脚接口,其中:第1脚:GND为电源地第2脚:VCC接5V电源正极第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会 产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。第4脚:RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择

15、指令寄存器。第5脚:RW为读写信号线,高电平(1)时进行读操作, 低电平(0)时进行写操作。第6脚:E(或EN)端为使能(enable)端,高电平(1)时读取信息,负跳变时执行指令。第714脚:D0D7为8位双向数据端。第1516脚:空脚或背灯电源。15脚背光正极,16脚背光负极。LCD接线图LCD实物显示图6.安卓移动端安卓移动端主要实现给蓝牙串口发送特定的字符串,来控制电磁锁的开锁和上锁,并且接收arduno开发板采集到的温湿度数据,并将数据实时的显示出来。主要界面如下所示: 搜索设备 APP主页 连接后七创新点1)使用蓝牙控制门锁为了解决忘带钥匙而无法进门的尴尬情形,我们以此为出发点,设

16、计了这款智能门锁的雏形,它的连接机制很简单,不需要通过WIFI,而是使用蓝牙,你可以使用智能手机与其配对,当手机控制开锁时,门锁便会打开。2)将蓝牙门锁与温湿度数据的采集显示结合在一起,增加了其实用性。除了基础的门锁控制,我们还将温湿度数据通过LCD显示屏显示在门锁上,使得使用者可以在出门前具体了解环境情况,以此决定是否需要增减衣物,小小的附加功能也具有很大的实用价值。3)蓝牙控制APP的改进,增加安全性。在蓝牙控制Arduino板的实现中,为增加使用的安全性,将发送的表示控制电磁锁开关,即改变Arduino板串口状态的预设字符串封装起来,对用户隐藏,即,非用户即使连接上电磁锁,无法发送正确字

17、符串,无法进行操作,此方法大大增加安全性。八心得体会1.遇到的问题(1)问题一:LCD1602引脚太多,接到面包板之后线路比较杂,容易掉线,不方便移动。解决:采用1602IIC模块,将16引脚转化为4引脚,方便移动,排线整齐,能更好的将硬件封装在一起。(2)问题二:关于面包板的使用,由于以前没有使用过面包板,所以不了解面包板的接线方法。解决:通过在网上查询资料得知:面包板在左右两边各有两列,这两列习惯上作为电源的正负极插接,同一列中每五个栅格作为一组,这五个栅格是导通的,但是行与行之间是不导通的,最中间的位置有一条凹槽,用于隔断左右两部分。(3)问题三:在接继电器控制电磁锁的时候,一开始只是用

18、了继电器的开关功能,导致在控制12V电磁锁的时候电压太小,不能控制电磁锁的开关。解决:经过上网查询资料后,按照正确的接线方式接线后,使得常闭端输出的电流增大,从而能控制12V电磁锁的开锁和上锁。(4)问题四:在开发安卓移动端时,由于以前安卓开发的基础较少,所以在遇到许许多多的问题。解决:主要是通过在网上下载了一个安卓端蓝牙串口助手的源码,然后根据自己的实际需求在源码中增删,选择自己需要的部分,在这个过程中也遇到了许多的问题同时也学到了许多知识,恰好正在上安卓移动开发的课程,通过在课上寻找老师帮助和课下查询资料,修改代码最后终于修改成功。2.体会通过这次的arduno实验,从一开始确定题目,到动

19、手开始做再到最后成功完成蓝牙电磁锁的功能,通过这整个流程熟悉了整个开发的流程,提高了自己的动手能力。以前上课做的项目都是只有一部分,要么是软件代码部分,要么是硬件而且硬件也只是学习部分功能,从来没有真正将软件和硬件结合起来实践。这次的实验时间跨度久,老师给了充足的时间来完成这个小项目,正是足够的时间才使得我们能在遇到问题时自己动手查找资料自己来修改代码切实提高自己动手能力,并实现了基本功能后还有时间来不断的增加新的功能,进一步动手实践。比如一开始仅仅实现了使用网上下载的蓝牙串口助手发送一个字符来控制继电器,电磁锁来上锁和开锁,到添加温湿度模块采集温湿度信息和LCD模块显示温湿度信息和实时显示门

20、的状态,再到最后自己动手写安卓APP用蓝牙串口接收温湿度数据和门的状态信息在手机APP显示。这个过程中遇到了很多的问题,通不断的上网查询资料和向同学和老师请教,算是有条不紊的将问题一个个顺利解决,最后成功实现了预期的功能和后来拓展的功能。在这次实验中我主要负责蓝牙模块和安卓移动端程序的编写以及整合Arduno方面其他组员编写的LCD和温湿度传感器模块代码在一起。在这次实验中,从一开始上面提到的问题中,面包板都不会接到最后没有基础的情况下自己动手编写安卓移动端的代码,通过不断上网查询资料,将之前所学的知识和所做项目结合起来,最终做完这个实验的同时也提高了自己的能力。通过这次实验中学到的不仅仅是蓝

21、牙模块的使用,或是继电器等硬件的使用,又或是安卓APP的开发。我觉得最重要的是通过这次的实验将以前所学的知识亲自动手与实践相结合,在学习到新知识的同时增深了对以前所学知识的理解,虽然一开始担心什么都不会最后做的不好,在这个过程中也确实遇到了很多的问题,但正是在遇到问题时不断地解决问题,也才是提高能力的机会。九arduno源码#include #include LiquidCrystal_I2C lcd(0x3F,16,2);int humi;/湿度int tol;/校对码int temp;/温度int j;char d =C;unsigned int loopCnt;int chr40 = 0

22、;/创建数字数组,用来存放40个bitunsigned long time;#define pin 2void setup() pinMode(3, OUTPUT); Serial.begin(9600);void loop()bgn:delay(2000);pinMode(pin,OUTPUT);digitalWrite(pin,LOW);delay(20);/digitalWrite(pin,HIGH);delayMicroseconds(40);digitalWrite(pin,LOW);/设置2号接口模式:输入pinMode(pin,INPUT);/高电平响应信号loopCnt=100

23、00;while(digitalRead(pin) != HIGH)if(loopCnt- = 0)/如果长时间不返回高电平,输出个提示,重头开始。Serial.println(HIGH);goto bgn;/低电平响应信号loopCnt=30000;while(digitalRead(pin) != LOW)if(loopCnt- = 0)/如果长时间不返回低电平,输出个提示,重头开始。Serial.println(LOW);goto bgn;/开始读取bit1-40的数值 for(int i=0;i50)chri=1;elsechri=0;/湿度,8位的bit,转换为数值humi=chr0

24、*128+chr1*64+chr2*32+chr3*16+chr4*8+chr5*4+chr6*2+chr7;/温度,8位的bit,转换为数值temp=chr16*128+chr17*64+chr18*32+chr19*16+chr20*8+chr21*4+chr22*2+chr23;/校对码,8位的bit,转换为数值tol=chr32*128+chr33*64+chr34*32+chr35*16+chr36*8+chr37*4+chr38*2+chr39;/输出:温度、湿度、校对码Serial.print(temperature:);Serial.println(temp);Serial.p

25、rint( humidity:);Serial.print(humi);Serial.println(%RH);Serial.print(tol:);Serial.println(tol);/校对码输出至串口lcd.init();lcd.backlight();lcd.print(t:);lcd.print(temp);lcd.print(char)223); lcd.print(C); /显示摄氏度符号lcd.print( h:);lcd.print(humi);lcd.println(%RH);/空两行防止出现乱码,同时将湿度单位输出到LCDlcd.setCursor(0,1);/在LCD

26、上换行/lcd.print(OPEN); while(Serial.available() char c=Serial.read(); if(c=O) digitalWrite(3,HIGH); Serial.println(door open); c=X; d=O; if(c=C) digitalWrite(3,LOW); / 熄灭LED。 Serial.println(door closed); c=X; d=C; if(d=O) lcd.print(DOOR HAVE OPEN); if(d=C) lcd.print(DOOR IS CLOSED); 十安卓源码(1)BTClient.j

27、avapackage com.test.BTClient;import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.util.UUID;import com.test.BTClient.DeviceListActivity;import android.app.Activity;import android.app.AlertDialog;import andro

28、id.bluetooth.BluetoothAdapter;import android.bluetooth.BluetoothDevice;import android.bluetooth.BluetoothSocket;import android.content.DialogInterface;import android.content.Intent;import android.os.Bundle;import android.os.Environment;import android.os.Handler;import android.os.Message;import andro

29、id.view.LayoutInflater;/import android.view.Menu; /如使用菜单加入此三包/import android.view.MenuInflater;/import android.view.MenuItem;import android.view.View;import android.widget.Button;import android.widget.EditText;import android.widget.ScrollView;import android.widget.TextView;import android.widget.Toas

30、t;public class BTClient extends Activity private final static int REQUEST_CONNECT_DEVICE = 1; /宏定义查询设备句柄private final static String MY_UUID = 00001101-0000-1000-8000-00805F9B34FB; /SPP服务UUID号private InputStream is; /输入流,用来接收蓝牙数据/private TextView text0; /提示栏解句柄 private EditText edit0; /发送数据输入句柄 priva

31、te TextView dis; /接收数据显示句柄 private ScrollView sv; /翻页句柄 private String smsg = ; /显示用数据缓存 private String fmsg = ; /保存用数据缓存 public String filename=; /用来保存存储的文件名 BluetoothDevice _device = null; /蓝牙设备 BluetoothSocket _socket = null; /蓝牙通信socket boolean _discoveryFinished = false; boolean bRun = true; bo

32、olean bThread = false; private BluetoothAdapter _bluetooth = BluetoothAdapter.getDefaultAdapter(); /获取本地蓝牙适配器,即蓝牙设备 /* Called when the activity is first created. */ Override public void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); setContentView(R.layout.main); /设置画面为主画面 m

33、ain.xml /text0 = (TextView)findViewById(R.id.Text0); /得到提示栏句柄 edit0 = (EditText)findViewById(R.id.Edit0); /得到输入框句柄 sv = (ScrollView)findViewById(R.id.ScrollView01); /得到翻页句柄 dis = (TextView) findViewById(R.id.in); /得到数据显示句柄 /如果打开本地蓝牙设备不成功,提示信息,结束程序 if (_bluetooth = null) Toast.makeText(this, 无法打开手机蓝牙

34、,请确认手机是否有蓝牙功能!, Toast.LENGTH_LONG).show(); finish(); return; / 设置设备可以被搜索 new Thread() public void run() if(_bluetooth.isEnabled()=false) _bluetooth.enable(); .start(); /开门 ,发送O public void onOpenButtonClicked(View v) Button btn0 = (Button) findViewById(R.id.Button00); try OutputStream os = _socket.g

35、etOutputStream(); /蓝牙连接输出流 os.write(O); catch(IOException e) return; /关门 ,发送C public void onCloseButtonClicked(View v) Button btn01 = (Button) findViewById(R.id.Button01); try OutputStream os = _socket.getOutputStream(); /蓝牙连接输出流 os.write(C); catch(IOException e) return; /发送按键响应 public void onSendBu

36、ttonClicked(View v) int i=0; int n=0; try OutputStream os = _socket.getOutputStream(); /蓝牙连接输出流 byte bos = edit0.getText().toString().getBytes(); for(i=0;ibos.length;i+) if(bosi=0x0a)n+; byte bos_new = new bytebos.length+n; n=0; for(i=0;ibos.length;i+) /手机中换行为0a,将其改为0d 0a后再发送 if(bosi=0x0a) bos_newn=

37、0x0d; n+; bos_newn=0x0a; else bos_newn=bosi; n+; os.write(bos_new); catch(IOException e) /接收活动结果,响应startActivityForResult() public void onActivityResult(int requestCode, int resultCode, Intent data) switch(requestCode) case REQUEST_CONNECT_DEVICE: /连接结果,由DeviceListActivity设置返回 / 响应返回结果 if (resultCod

38、e = Activity.RESULT_OK) /连接成功,由DeviceListActivity设置返回 / MAC地址,由DeviceListActivity设置返回 String address = data.getExtras() .getString(DeviceListActivity.EXTRA_DEVICE_ADDRESS); / 得到蓝牙设备句柄 _device = _bluetooth.getRemoteDevice(address); / 用服务号得到socket try _socket = _device.createRfcommSocketToServiceRecor

39、d(UUID.fromString(MY_UUID); catch(IOException e) Toast.makeText(this, 连接失败!, Toast.LENGTH_SHORT).show(); /连接socket Button btn = (Button) findViewById(R.id.Button03); try _socket.connect(); Toast.makeText(this, 连接+_device.getName()+成功!, Toast.LENGTH_SHORT).show(); btn.setText(断开); catch(IOException e

40、) try Toast.makeText(this, 连接失败!, Toast.LENGTH_SHORT).show(); _socket.close(); _socket = null; catch(IOException ee) Toast.makeText(this, 连接失败!, Toast.LENGTH_SHORT).show(); return; /打开接收线程 try is = _socket.getInputStream(); /得到蓝牙数据输入流 catch(IOException e) Toast.makeText(this, 接收数据失败!, Toast.LENGTH_S

41、HORT).show(); return; if(bThread=false) ReadThread.start(); bThread=true; else bRun = true; break; default:break; /接收数据线程 Thread ReadThread=new Thread() public void run() int num = 0; byte buffer = new byte1024; byte buffer_new = new byte1024; int i = 0; int n = 0; bRun = true; /接收线程 while(true) try

42、 while(is.available()=0) while(bRun = false) while(true) num = is.read(buffer); /读入数据 n=0; String s0 = new String(buffer,0,num); fmsg+=s0; /保存收到数据 for(i=0;inum;i+) if(bufferi = 0x0d)&(bufferi+1=0x0a) buffer_newn = 0x0a; i+; else buffer_newn = bufferi; n+; String s = new String(buffer_new,0,n); smsg+

43、=s; /写入接收缓存 if(is.available()=0)break; /短时间没有数据才跳出进行显示 /发送显示消息,进行显示刷新 handler.sendMessage(handler.obtainMessage(); catch(IOException e) ; /消息处理队列 Handler handler= new Handler() public void handleMessage(Message msg) super.handleMessage(msg); dis.setText(smsg); /显示数据 sv.scrollTo(0,dis.getMeasuredHeig

44、ht(); /跳至数据最后一页 ; /关闭程序掉用处理部分 public void onDestroy() super.onDestroy(); if(_socket!=null) /关闭连接socket try _socket.close(); catch(IOException e) /_bluetooth.disable(); /关闭蓝牙服务 /菜单处理部分 /* Override public boolean onCreateOptionsMenu(Menu menu) /建立菜单 MenuInflater inflater = getMenuInflater(); inflater.

45、inflate(R.menu.option_menu, menu); return true; */ /* Override public boolean onOptionsItemSelected(MenuItem item) /菜单响应函数 switch (item.getItemId() case R.id.scan: if(_bluetooth.isEnabled()=false) Toast.makeText(this, Open BT., Toast.LENGTH_LONG).show(); return true; / Launch the DeviceListActivity to see devices and do scan Intent serverIntent = new Intent(this, DeviceListActivity.class); startActivityForR

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论