android蓝牙程序开发中,如何确定一台手机当前是服务器还是客户端

android蓝牙程序开发中,如何确定一台手机当前是服务器还是客户端,第1张

首先,要 *** 作蓝牙,先要在AndroidManifestxml里加入权限
<uses-permissionandroid:name="androidpermissionBLUETOOTH_ADMIN" />
<uses-permissionandroid:name="androidpermissionBLUETOOTH" />
然后,看下api,Android所有关于蓝牙开发的类都在androidbluetooth包下。 而需要用到了就只有几个而已:
1BluetoothAdapter 顾名思义,蓝牙适配器,直到我们建立bluetoothSocket连接之前,都要不断 *** 作它BluetoothAdapter里的方法很多,常用的有以下几个:cancelDiscovery() 根据字面意思,是取消发现,也就是说正在搜索设备的时候调用这个方法将不再继续搜索disable()关闭蓝牙enable()打开蓝牙,这个方法打开蓝牙不会d出提示,更多的时候需要问下用户是否打开,一下这两行代码同样是打开蓝牙,不过会提示用户:Intemtenabler=new Intent(BluetoothAdapterACTION_REQUEST_ENABLE);
startActivityForResult(enabler,reCode);//同startActivity(enabler);
getAddress()获取本地蓝牙地址getDefaultAdapter()获取默认BluetoothAdapter,实际上,也只有这一种方法获取BluetoothAdaptergetName()获取本地蓝牙名称getRemoteDevice(String address)根据蓝牙地址获取远程蓝牙设备getState()获取本地蓝牙适配器当前状态(感觉可能调试的时候更需要)isDiscovering()判断当前是否正在查找设备,是返回trueisEnabled()判断蓝牙是否打开,已打开返回true,否则,返回falselistenUsingRfcommWithServiceRecord(String name,UUID uuid)根据名称,UUID创建并返回BluetoothServerSocket,这是创建BluetoothSocket服务器端的第一步startDiscovery()开始搜索,这是搜索的第一步。 2BluetoothDevice看名字就知道,这个类描述了一个蓝牙设备createRfcommSocketToServiceRecord(UUIDuuid)根据UUID创建并返回一个BluetoothSocket这个方法也是我们获取BluetoothDevice的目的——创建BluetoothSocket
这个类其他的方法,如getAddress(),getName(),同BluetoothAdapter;
3BluetoothServerSocket如果去除了Bluetooth相信大家一定再熟悉不过了,既然是Socket,方法就应该都差不多,这个类一种只有三个方法
两个重载的accept(),accept(inttimeout)两者的区别在于后面的方法指定了过时时间,需要注意的是,执行这两个方法的时候,直到接收到了客户端的请求(或是过期之后),都会阻塞线程,应该放在新线程里运行。
还有一点需要注意的是,这两个方法都返回一个BluetoothSocket,最后的连接也是服务器端与客户端的两个BluetoothSocket的连接。
4BluetoothSocket,跟BluetoothServerSocket相对,是客户端一共5个方法,不出意外,都会用到close(),关闭connect()连接getInptuStream()获取输入流getOutputStream()获取输出流getRemoteDevice()获取远程设备,这里指的是获取bluetoothSocket指定连接的那个远程蓝牙设备 。

下载 蓝牙驱动 “ WIDCOMM BLUETOOTH SOFTWARE 401700破解版本”
以下就是详细的建立过程:
1 :材料:杂牌蓝牙适配器一个、蓝牙驱动程序、蓝牙手机(以6680为例)
2:建立步骤:
1)正确安装WIDCOMM BLUETOOTH SOFTWARE 401700 驱动程序:
将驱动解压缩到指定文件夹后找到“SETUPEXE”,双击运行它--“下一步”--“接受协议”--确定要更改安装路径--“安装”--“仍然继续”(如有提示的话,会出现N次)--插入蓝牙适配器,“确定”--“完成”。总之不停下一步就是了
2)安装破解补丁:
建议此时在“安全模式” 下进行 *** 作!(进入安全模式方法:重启电脑后,在出现系统启动画面之前按F8,即可从出现的菜单选择“安全模式”。)
在目录“破解补丁\Patch\Modified btwusbinf”的Modified btwusbinf文件点击右键,选择安装。
复制目录“\Patch\Programs_Bluetooth_WidComm401700patched”里的两个EXE文件到覆盖到程序安装目录\Program Files\Widcomm\Bluetooth Software目录下
复制目录“破解补丁\Patch\Windows_System32_WidComm401700patched”内的两个DLL文件到系统盘\Windows\System32目录下
如果提示wbtapidll正在使用无法覆盖,请将Windows\System32目录下wbtapidll随便改名然后再覆盖。
退出安全模式,重启电脑,进入正常模式。
3)设置蓝牙驱动。
第一次运行蓝牙软件,会进入“初始Bluetooth配置向导”--“下一步”--要求你输入计算机的名称,当使用蓝牙连接手机时,就会显示这个名称。输入完毕后,按“下一步”--“下一步”--提示选择计算机提供的服务(全部都装上吧,功能多了更好使!),按“下一步”--如果你只有手机一台蓝牙设备,此时选择“跳过” --“完成”。
4)电脑拨号方式的建立。
开始--设置--控制面板--网络连接--鼠标右键单击“BluetoothConnection”--属性--鼠标左键单击“调制解调器”,并在下面的“电话号码”一栏,填上“99#”(不含引号)--单击“网络”选项--设置--去掉“启用LCP扩展”这一项前面的小勾,并按“确定”--再一次“确定”。
5)浏览器的设置。
由于中国移动对IE默认的 User Agent 进行封锁,在一般情况下,是无法利用IE通过设置代理上网的。当然,许多论坛上都有高手通过修改注册表的方法进行破解,但我觉得对像我这种菜鸟,随便修改注册表有点危险,不提倡使用。解决方法:下载“Mozilla Firefox”浏览器,它并不像Maxthon那样基于IE内核运行,因此更加安全。关键是,我们可以通过这款浏览器的扩展插件,去修改User Agent,从而达到突破移动的封锁,打开网页!
下载并安装好“Mozilla Firefox”浏览器,双击运行,将插件拖到浏览器,浏览器会自动识别,点击“立即安装”。安装完毕,重启浏览器后,点击“工具”就会发现多了一项“User Agnet Switcher”。“User Agnet Switcher”--“Option”--“Option”--单击“User Agents”--“Add”--“Description”栏目,随便填入(假设Home)--“User Agent”栏目,随便填入(假设GPRS)--确定--确定。这样,便可以建立一个不被移动封锁的“User Agent”了。
如果使用IE的可以修改注册表
XP用以下一段:
Windows Registry Editor Version 500
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\50\User Agent]
@="openwave"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\50\User Agent\Post Platform]
"NET CLR 114322"=""
"openwave"=""
原来IE的设置
Windows Registry Editor Version 500
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\50\User Agent]
@="Mozilla/40"
"Compatible"="compatible"
"Version"="MSIE"
"Platform"="Windows"
接着,点击“工具”--“选项”--“基本信息”--“连接设置”--“手动配置代理”--“>

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10888691.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-12
下一篇 2023-05-12

发表评论

登录后才能评论

评论列表(0条)

保存