1. 关于android蓝牙客户端通讯开发,有没有好用的第三方库
常见有7种操作系统,有缺点如下: Symbian OS,WM,PalmOS,Linux,Android,iPhoneOS/Mac OS X,BlackBerry 或许智能手机还不算是现在手机的主流,但是势必要成为未来手机市场的主流!因为手机的功能越来越强大,很多朋友在选择智能手机的时候无所适从,不知道该选择哪个操作系统的手机,下面icech搜集整理了7大主流的智能手机操作系统介绍,还附加了网友的优缺点。 Symbian OS(塞班) Symbian OS(中文译音“塞班系统”)由诺基亚、索尼爱立信、摩托罗拉、西门子等几家大型移动通讯设备商共同出资组建的一个合资公司,专门研发手机操作系统。而 Symbian操作系统的前身是EPOC,而EPOC是 Electronic Piece ofCheese取第一个字母而来的,其原意为"使用电子产品时可以像吃奶酪一样简单",这就是它在设计时所坚持的理念。 Symbian操作系统在智能移动终端上拥有强大的应用程序以及通信能力,这都要归功于它有一个非常健全的核心-强大的对象导向系统、企业用标准通信传输协议以及完美的sun java语言。Symbian认为无线通讯装置除了要提供声音沟通的功能外,同时也应具有其它种沟通方式,如触笔、键盘等。在硬件设计上,它可以提供许多不同风格的外型,像使用真实或虚拟的键盘,在软件功能上可以容纳许多功能,包括和他人互相分享信息、浏览网页、传输、接收电子信件、传真以及个人生活行程管理等。此外,Symbian操作系统在扩展性方面为制造商预留了多种接口,而且EPOC 操作系统还可以细分成三种类型:Pearl/Quartz/Crystal,分别对应普通手机、智能手机、Hand Held PC场合的应用。 优点:多年来Symbian系统一直占据智能系统的市场霸主地位,系统能力和易用性等各方面很强! 缺点:一般配置的机型反映较慢,对主流的媒体格式的支持性较差,不同版本的软件兼容性不好,且证书问题也很头痛。 Windows Mobile 微软推出的Windows Mobile操作系统最初被视作是与Palm OS竞争的产品,然而时至今日,Windows Mobile的应用已经超过Palm,开始显露出掌上设备王者的风范。去年发布的V5.0做出了很多实用的改进,包括更加智能化的Word和Excel版本、直接邮件技术和持久的数据存储。 Windows Mobile是 Microsoft 用于 Pocket PC 和 Smartphone 的软件平台。Windows Mobile 将熟悉的 Windows 桌面扩展到了个人设备中。 Windows Mobile是微软为手持设备推出的“移动版Windows”,使用WindowsMobile操作系统的设备主要有手机、PDA、随身音乐播放器等。 Windows Mobile操作系统有三种,分别是WindowsMobile Standard、Windows MobileProfessional,Windows Mobile Classic。目前最新的版本是Windows Mobile 6.1,6.5版本即将公布。 Windows Mobile掌上电脑和手机的主流硬件配置:CPU: 195-624 Mhz, 主要芯片厂商:Intel,Texas Instruments, Samsung, Qualcomm等,内存:64-128MB Ram (用于程序运行),128-256MBRom (用于第三方程序及用户文件储存),显示屏:240x320或480x640,6.5万色,2.4-3.5英寸,扩充卡:Micro SD或SD,SDHC,高端机型内置WiFi无线网络接收模块,GPS卫星接收模块,FM收音机接收模块,3G或3.5G高速网络,另配有蓝牙及用于和电脑同步用的USB接口。 优点:界面和操作都和电脑上的Windows十分接近,对于机友来说十分熟悉又上手;各种保存在电脑或手机里的信息、资料可以轻松实现共享;有大量的应用软件可供用户选择 缺点:占用系统资源高、容易系统崩溃、机型价格相对较高。。。 Linux 目前采用Linux操作系统的手机越来越多,不过几乎每一部手机的操作系统都是厂家自己开发的,Linux并没有一个统一的平台。不过值得注意的是,近期有厂商推出了GreenPhone的概念,也就是提供一个统一的Linux软件平台,然后再由手机制造商添加具体的特性,这已经较接近完整的手机操作系统。 目前Linux发展的最大阻力在于它对硬件要求比较高,而且没有一个强有力的推广方。这样就导致Linux手机的成本并不便宜,而且版本混乱。但Linux的优势也相当明显,首先它是免费的,不需要缴纳任何专利费,这对于大多数手机制造商都是极大的诱惑;其次它是开源的,每一家愿意的厂商都能够加入到Linux操作系统的底层开发中。 关于Linux的前景,我们只能预测短期。现在其他操作系统已经相当完善,而Linux还远远谈不上成熟,所以在短期内Linux不会获得大规模应用,但采用Linux的手机应该会接连不断地出现在市场上,并且受到一定的欢迎。 优点:具有自由、免费、开放源代码的优势,可以由用户自主研究代码,自定义多数系统的内容 缺点:Linux操作系统的机型来自官方的第三方软件很少,需要用户自行刷机后才能安装更多的程序,操作起来有些门槛。 Palm OS Palm OS是Palm公司开发的专用于PDA上的一种操作系统,这是PDA上的霸主,一度普占据了90%的PDA市场的份额。虽然其并不专门针对于手机设计,但是Palm OS的优秀性和对移动设备的支持同样使其能够成为一个优秀的手机操作系统。其最新的版本为Palm OS 5.2。目前具有手机功能的Palm PDA如Palm公司的Tungsten W。而Handspring公司(目前已被Palm公司收购)的Treo系列则是专门使用Palm OS的手机,如Treo 270以及最新的倍受瞩目的Treo 650。 四年前掌上电脑操作系统的霸主是Palm,那时的中高端PDA清一色都是Palm和索尼的产品,而且几乎都是境外带回来的水货。不过如今Palm操作系统如今已经风光不再,当年索尼宣布退出国际PDA市场(实际上等于宣布停止生产Palm操作系统的 PDA,因为索尼的全部PDA都采用Palm系统),对于 Palm来说不亚于一场雪崩,而且事实上索尼的退出也确实成为Palm由盛转衰的分水岭,此后Palm的市场分额逐渐被Windows Mobile所蚕食。 优点:Palm OS系统运行占用资源少,处理速度快,且简单易用 缺点:功能单一,用户群少,支持中文的操作平台开发慢啊慢 Mac OS X (苹果iphone的系统) Mac OS X 是苹果麦金塔电脑之操作系统软件的 Mac OS最新版本。Mac OS X 于 2001年首次在商场上推出。它包含两个主要的部份:Darwin,是以 BSD 原始码和 Mach 微核心为基础,类似 Unix 的开放原始码环境,由苹果电脑采用和与独立开发者协同作进一步的开发;及一个由苹果电脑开发,命名为 Aqua 之有版权的 GUI。 Mac OS X Server 亦同时于2001年发售. 架构上来说与工作站(客户端)版本相同,只有在包含的工作群组管理和管理软件工具上有所差异,提供对于关键网络服务的简化存取,像是邮件传输服务器, samba 软件,LDAP 目录服务器,以及名称服务器(DNS)。同时它也有不同的授权型态。 优点:全触摸设计,真的是一次手机革命,娱乐性能强,第三方软件多 缺点:系统封闭,功能不是太全面 Google Android HTC G1操作界面Android 是Google开发的基于Linux平台的开源手机操作系统。它包括操作系统、用户界面和应用程序 --移动电话工作所需的全部软件,而且不存在任何以往阻碍移动产业创新的专有权障碍。谷歌与开放手机联盟合作开发了 Android,这个联盟由包括中国移动、摩托罗拉、高通、宏达和 T-Mobile 在内的 30 多家技术和无线应用的领军企业组成。通过与运营商、设备制造商、开发商和其他有关各方结成深层次的合作伙伴关系,我们希望借助建立标准化、开放式的移动电话软件平台,在移动产业内形成一个开放式的生态系统。我们认为此举必将推进更好、更快的创新,为移动用户提供不可预知的应用和服务。 android一词的本义指“机器人”,当时同时Android也是Google于07年11月5日宣布的基于Linux平台开源手机操作系统名称,该平台由操作系统、中间件、用户界面和应用软件组成,号称是首个为移动终端打造的真正开放和完整的移动软件。 2008 年9月22日,美国运营商T-Mobile USA在纽约正式发布第一款Google手机--T-Mobile G1。该款手机为宏达电制造,是世界上第一部使用Android操作系统的手机,支持WCDMA/HSPA网络,理论下载速率7.2Mbps,并支持 Wi-Fi。 优点:具备触摸屏、高级图形显示和上网功能,界面强大,可以说是一种融入全部Web应用的单一平台 缺点:采用该系统的机型少,上手有点难度 BlackBerry(黑莓) “黑莓”BlackBerry是美国市场占有率第一的智能手机,这得益于它的制造商RIM(Research in Motion)较早地进入移动市场并且开发出适应美国市场的邮件系统。大家都知道BlackBerry的经典设计就是宽大的屏幕和便于输入的QWERTY 键盘,所以BlackBerry一直是移动电邮的巨无霸。正因为是正统的商务机,所以它在多媒体播放方面的功能非常孱弱,也许它在未来应该着力改善这个弱点,因为手机功能的整合是大势所趋,人们不会只满足于单一的功能。 BlackBerry开始于1998年,RIM的品牌战略顾问认为,无线电子邮件接收器挤在一起的小小的标准英文黑色键盘,看起来像是草莓表面的一粒粒种子,就起了这么一个有趣的名字。应该说,Blackberry与桌面PC 同步堪称完美,它可以自动把你Outlook邮件转寄到Blackberry中,不过在你用Blackberry发邮件时,它会自动在邮件结尾加上“此邮件由Blackberry发出”字样。 BlackBerry在美国之外的影响微乎其微,我国最近已经在广州开始与RIM合作进行移动电邮的推广试验,不过目前看来收效甚微。大家都知道,我国对于电子邮件的依赖并不像美国人那么强,他们在电子邮件里讨论工作、安排日程,而我们则更倾向于当面交谈。可以说BlackBerry在中国的影响几乎为零,除了它那经典的外形。 优点:Blackberry与桌面PC 同步堪称完美,大家都知道BlackBerry的经典设计就是宽大的屏幕和便于输入的QWERTY键盘,所以BlackBerry一直是移动电邮的巨无霸。 缺点:在多媒体播放方面的功能非常孱弱。 以上为引用:)
2. 求教如何制作一个安卓手机蓝牙制作的app程序,用于和单片机上的蓝牙模块,实现数据的传送
下位机,用串口和蓝牙模块连接,通信
上位机,安卓app开发用eclipse或者是android studio,蓝牙有相关的函数,,连接,断开,接受,网上大部分代码套着用就行了,,如果需要修改也修改的不多,,主ui界面的时候,不能有进程的占用和其他的一些的线程的操作,所以就得到子线程里面去执行了,还是先学学基础吧,之后再看这些的话,就容易的多了
3. 如何让Android 蓝牙APP,同时支持连接蓝牙4.0模块和2.0模块。
同时支持是不可能滴,一个蓝牙app只能有一个版本,要么2.0要么4.0 除非你有两个蓝牙,什么?不可能?看哥的!
第一步,下载安卓apk编辑器,有破解的自己搜,
第二,打开并在里面找到你编写的蓝牙app,
第三,选择它弹出选项,选择制作共存,就OK啦
你会发现你们安装两个蓝牙app,不过手机支不支持,俺就不知道咯,
4. android蓝牙通信开发有几种方案
android 4.0以下使用 spp协议, 简单
4.0以上可以使用 BLE协议, 比较复杂
5. 如何使用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。
6. Android蓝牙开发代码怎么写
开启蓝牙设备和设置可见时间:
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
7. 如何实现android蓝牙开发 自动配对连接,并不弹出提示框
android蓝牙自动配对连接的具体代码如下:1.获取蓝牙适配器BluetoothAdapterblueadapter=BluetoothAdapter.getDefaultAdapter();如果BluetoothAdapter为null,说明android手机没有蓝牙模块。2.判断蓝牙模块是否开启,blueadapter.isEnabled()true表示已经开启,false表示蓝牙并没启用。3.启动配置蓝牙可见模式,即进入可配对模式Intentin=newIntent(BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE);in.putExtra(BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION,200);startActivity(in);,200就表示200秒。4.获取蓝牙适配器中已经配对的设备Setdevice=blueadapter.getBondedDevices();当然,还需要在androidManifest.xml中声明蓝牙的权限5.自动配对设置Pin值staticpublicbooleanautoBond(ClassbtClass,BluetoothDevicedevice,StringstrPin)throwsException{MethodautoBondMethod=btClass.getMethod("setPin",newClass[]{byte[].class});Booleanresult=(Boolean)autoBondMethod.invoke(device,newObject[]{strPin.getBytes()});returnresult;}6.开始配对请求staticpublicbooleancreateBond(ClassbtClass,BluetoothDevicedevice)throwsException{MethodcreateBondMethod=btClass.getMethod("createBond");BooleanreturnValue=(Boolean)createBondMethod.invoke(device);returnreturnValue.booleanValue();}
8. android 蓝牙开发,在使用APP inventor编程后连接的时候出现了蓝牙权限问题,该怎么解决啊。急啊。
每个App里面都有一个Androidmanifest.xml文件,我最近也遇到这个问题。摸索了好久才明白的。在你用App Inventor生成App以后,你可以用Apptool之类的工具把App解压,里面就有一个Androidmanifest.xml文件,你打开以后添加你需要允许的权限,保存。再用Apptool反编译一下,反编译后的App要经过签名才能在android上安装,不然在大部分情况下的都是装不上的。像你这个情况的话直接在里面适当的位置添加<uses-permissionandroid:name="android.permission.BLUETOOTH_ADMIN" />就可以了
9. 如何实现Android蓝牙开发 自动配对连接,并不弹出提示框
实现android蓝牙开发 自动配对连接,并不弹出提示框: 源码 BluetoothDevice 类中还有两个隐藏方法:cancelBondProcess()和cancelPairingUserInput(),这两个方法一个是取消配对进程一个是取消用户输入 下面是自动配对的代码 Mainfest,xml注册 <receiver android:name="." > <intent-filter> <action android:name="android.bluetooth.device.action.PAIRING_REQUEST" /> </intent-filter> </receiver> 自己在收到广播时处理并将预先输入的密码设置进去 public class extends BroadcastReceiver { String strPsw = "0"; @Override public void onReceive(Context context, Intent intent) { // TODO Auto-generated method stub if (intent.getAction().equals( "android.bluetooth.device.action.PAIRING_REQUEST")) { BluetoothDevice btDevice = intent .getParcelableExtra(BluetoothDevice.EXTRA_DEVICE); // byte[] pinBytes = BluetoothDevice.convertPinToBytes("1234"); // device.setPin(pinBytes); Log.i("tag11111", "ddd"); try { ClsUtils.setPin(btDevice.getClass(), btDevice, strPsw); // 手机和蓝牙采集器配对 ClsUtils.createBond(btDevice.getClass(), btDevice); ClsUtils.cancelPairingUserInput(btDevice.getClass(), btDevice); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } } } <b>/************************************ 蓝牙配对函数 * **************/ import java.lang.reflect.Field; import java.lang.reflect.Method; import android.bluetooth.BluetoothDevice; import android.util.Log; public class ClsUtils { /** * 与设备配对 参考源码:platform/packages/apps/Settings.git * /Settings/src/com/android/settings/bluetooth/CachedBluetoothDevice.java */ static public boolean createBond(Class btClass, BluetoothDevice btDevice) throws Exception { Method createBondMethod = btClass.getMethod("createBond"); Boolean returnValue = (Boolean) createBondMethod.invoke(btDevice); return returnValue.booleanValue(); } /** * 与设备解除配对 参考源码:platform/packages/apps/Settings.git * /Settings/src/com/android/settings/bluetooth/CachedBluetoothDevice.java */ static public boolean removeBond(Class btClass, BluetoothDevice btDevice) throws Exception { Method removeBondMethod = btClass.getMethod("removeBond"); Boolean returnValue = (Boolean) removeBondMethod.invoke(btDevice); return returnValue.booleanValue(); } static public boolean setPin(Class btClass, BluetoothDevice btDevice, String str) throws Exception { try { Method removeBondMethod = btClass.getDeclaredMethod("setPin", new Class[] {byte[].class}); Boolean returnValue = (Boolean) removeBondMethod.invoke(btDevice, new Object[] {str.getBytes()}); Log.e("returnValue", "" + returnValue); } catch (SecurityException e) { // throw new RuntimeException(e.getMessage()); e.printStackTrace(); } catch (IllegalArgumentException e) { // throw new RuntimeException(e.getMessage()); e.printStackTrace(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } return true; } // 取消用户输入 static public boolean cancelPairingUserInput(Class btClass, BluetoothDevice device) throws Exception { Method createBondMethod = btClass.getMethod("cancelPairingUserInput"); // cancelBondProcess() Boolean returnValue = (Boolean) createBondMethod.invoke(device); return returnValue.booleanValue(); } // 取消配对 static public boolean cancelBondProcess(Class btClass, BluetoothDevice device) throws Exception { Method createBondMethod = btClass.getMethod("cancelBondProcess"); Boolean returnValue = (Boolean) createBondMethod.invoke(device); return returnValue.booleanValue(); } /** * * @param clsShow */ static public void printAllInform(Class clsShow) { try { // 取得所有方法 Method[] hideMethod = clsShow.getMethods(); int i = 0; for (; i < hideMethod.length; i++) { Log.e("method name", hideMethod[i].getName() + ";and the i is:" + i); } // 取得所有常量 Field[] allFields = clsShow.getFields(); for (i = 0; i < allFields.length; i++) { Log.e("Field name", allFields[i].getName()); } } catch (SecurityException e) { // throw new RuntimeException(e.getMessage()); e.printStackTrace(); } catch (IllegalArgumentException e) { // throw new RuntimeException(e.getMessage()); e.printStackTrace(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } }</b> 执行时直接使用: <b>public static boolean pair(String strAddr, String strPsw) { boolean result = false; BluetoothAdapter bluetoothAdapter = BluetoothAdapter .getDefaultAdapter(); bluetoothAdapter.cancelDiscovery(); if (!bluetoothAdapter.isEnabled()) { bluetoothAdapter.enable(); } if (!BluetoothAdapter.checkBluetoothAddress(strAddr)) { // 检查蓝牙地址是否有效 Log.d("mylog", "devAdd un effient!"); } BluetoothDevice device = bluetoothAdapter.getRemoteDevice(strAddr); if (device.getBondState() != BluetoothDevice.BOND_BONDED) { try { Log.d("mylog", "NOT BOND_BONDED"); ClsUtils.setPin(device.getClass(), device, strPsw); // 手机和蓝牙采集器配对 ClsUtils.createBond(device.getClass(), device); remoteDevice = device; // 配对完毕就把这个设备对象传给全局的remoteDevice result = true; } catch (Exception e) { // TODO Auto-generated catch block Log.d("mylog", "setPiN failed!"); e.printStackTrace(); } // } else { Log.d("mylog", "HAS BOND_BONDED"); try { ClsUtils.createBond(device.getClass(), device); ClsUtils.setPin(device.getClass(), device, strPsw); // 手机和蓝牙采集器配对 ClsUtils.createBond(device.getClass(), device); remoteDevice = device; // 如果绑定成功,就直接把这个设备对象传给全局的remoteDevice result = true; } catch (Exception e) { // TODO Auto-generated catch block Log.d("mylog", "setPiN failed!"); e.printStackTrace(); } } return result; }