通过蓝牙连接Android PC

时间:2011-07-08 07:36:30

标签: android

我使用蓝牙连接为Android手机和PC编写了Client Server应用程序, 其中PC充当使用J2SE和Bluecove library编写的服务器,而Android则充当客户端。

我还测试了我的应用程序的工作情况,它可以像聊天服务一样连接,发送和接收数据。

但我的问题是,这些都只适用于三星Android手机,但不适用于其他厂商的设备。到目前为止,我已经使用

测试了我的应用程序
  1. 三星GT-S5570
  2. 三星Galaxy S2
  3. HTC Nexus One
  4. 索尼爱立信Xperia 10i和服务器是我的Windows 7。
  5. 客户端和服务器仅在三星设备上连接,但不与上述其他2个设备连接。当我尝试连接HTC和索尼爱立信移动设备时,显示无法连接,我尝试连接这么多次但没有成功。我不知道究竟是什么问题。

    我从Android Bluetooth Chat Sample Application开发了Android应用程序。

    根据(Android Documentation)我们需要在我们想要与计算机连接时给出如下UUID,但对于Mobile,我们可以给出我们自己的值。 UUID对计算机的价值是,

    UUID MY_UUID_SECURE = UUID.fromString("00001101-0000-1000-8000-00805F9B34FB");
    

    [编辑]

    经过一些分析,我发现在三星手机中,每当我尝试连接我的PC应用程序时,它都会启动配对(如果它尚未配对)并且会在成功配对时与我的应用程序连接,但在其他手机中,它甚至没有启动配对。所以我只是按照以下步骤进行操作,

    1. 我使用蓝牙设置手动配对我的手机和PC,并尝试使用上述代码连接我的PC应用程序。
    2. 编写我的移动应用程序,以这种方式启动配对(使用Justin Breitfeller的答案代码)并在成功配对时连接我的PC应用程序。 (这个成功启动配对过程) 但这两种方式都无法帮助我连接我的应用程序。
    3. 任何想法,谢谢。

1 个答案:

答案 0 :(得分:1)

您是否尝试过以下方法在其他设备上创建套接字?

Method m = device.getClass().getMethod("createRfcommSocket", new Class[] { int.class });
sock = (BluetoothSocket) m.invoke(device, Integer.valueOf(1));

我必须在我的某些设备上执行此操作才能获得任何连接。