Android开发 蓝牙连接问题
大神们,最近小弟在整android蓝牙,查了好几天的资料了,好像还是没什么收获,所以只好发帖求助了!现在我要做的是蓝牙一对多的链接,也就是把自己本机当作蓝牙服务器端,等待...
大神们,最近小弟在整android蓝牙,查了好几天的资料了,好像还是没什么收获,所以只好发帖求助了!
现在我要做的是 蓝牙一对多的链接,也就是把自己本机当作蓝牙服务器端,等待其他设备来连接,并且可以同时和多个(需求7个)设备连接并可以传输数据,要求我们只做服务器端,其他设备都是未知的,随时都可以连接此服务器端。在网上查了些资料,都是一些服务器端和客户端都得做的例子,也就是其他设备得知道服务器的UUID才能连接,所以也想问问 在我们任何一个设备通过蓝牙连接另外一个设备时,是根据什么来连接的?地址?MAC?还是其他!
有路过的大神做过吗?望驻足指点一下,小弟在此谢过了! 展开
现在我要做的是 蓝牙一对多的链接,也就是把自己本机当作蓝牙服务器端,等待其他设备来连接,并且可以同时和多个(需求7个)设备连接并可以传输数据,要求我们只做服务器端,其他设备都是未知的,随时都可以连接此服务器端。在网上查了些资料,都是一些服务器端和客户端都得做的例子,也就是其他设备得知道服务器的UUID才能连接,所以也想问问 在我们任何一个设备通过蓝牙连接另外一个设备时,是根据什么来连接的?地址?MAC?还是其他!
有路过的大神做过吗?望驻足指点一下,小弟在此谢过了! 展开
4个回答
推荐于2018-03-29 · 知道合伙人软件行家
关注
展开全部
Android 蓝牙编程的基本步骤:
1.获取蓝牙适配器BluetoothAdapter blueadapter=BluetoothAdapter.getDefaultAdapter();
如果BluetoothAdapter 为null,说明android手机没有蓝牙模块。
判断蓝牙模块是否开启,blueadapter.isEnabled() true表示已经开启,false表示蓝牙并没启用。
2.启动配置蓝牙可见模式,即进入可配对模式Intent in=new Intent(BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE);
in.putExtra(BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION, 200);
startActivity(in); ,200就表示200秒。
3.获取蓝牙适配器中已经配对的设备Set<BluetoothDevice> device=blueadapter.getBondedDevices();
4.还需要在androidManifest.xml中声明蓝牙的权限
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
接下来就是根据自己的需求对BluetoothAdapter 的操作了。
1.获取蓝牙适配器BluetoothAdapter blueadapter=BluetoothAdapter.getDefaultAdapter();
如果BluetoothAdapter 为null,说明android手机没有蓝牙模块。
判断蓝牙模块是否开启,blueadapter.isEnabled() true表示已经开启,false表示蓝牙并没启用。
2.启动配置蓝牙可见模式,即进入可配对模式Intent in=new Intent(BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE);
in.putExtra(BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION, 200);
startActivity(in); ,200就表示200秒。
3.获取蓝牙适配器中已经配对的设备Set<BluetoothDevice> device=blueadapter.getBondedDevices();
4.还需要在androidManifest.xml中声明蓝牙的权限
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
接下来就是根据自己的需求对BluetoothAdapter 的操作了。
展开全部
MAC地址,UUID是默认的端口,一般手机蓝牙有30个端口,其实我们手机上的蓝牙模块设计其实是不用UUID设计的,因为这样设计connect会抛出很多异常,大多采用反射的方法,当手机打开时,会在周围扫描蓝牙信息,进行匹配,这时并没有建立通讯,只是将一些蓝牙名称、MAC地址信息取得,当连接时根据MAC采用connect进行连接。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
必须装终端的。。。。不然就成了黑客方法入侵啦。。。。。 mac是硬件地址,全球的东东都有一个唯一的mac地址。。。。。必须装终端,我研究了黑客技术,黑客也是通过木马里应外合的。。。。。
追问
那我们蓝牙实现是个什么原理呢? 比如两个不同的完全不知的设备之间是如何来配对的?配对之后又如何传输数据的?设备是如何监听链接请求的?谢谢你了!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
那么专业。。。没研究过
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询