2Pascal-新时代的Pascal

 找回密码
 立即注册
搜索
热搜: fastreport
查看: 2384|回复: 12
打印 上一主题 下一主题

安卓手表与安卓手机的蓝牙通讯问题

[复制链接]

1

主题

8

帖子

19

积分

新手上路

Rank: 1

积分
19
跳转到指定楼层
楼主
发表于 2015-6-16 13:58:45 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
京东购书支持本站
本帖最后由 110302124 于 2015-6-16 14:07 编辑

同样的程序两台手机能互相调用蓝牙的connect并发送数据,一台手机和一台手表 同样的程序 手表能connect到手机 并能发送数据 手机向手表发送数据时确connect异常 这大概是什么回事 这个异常一般来说是找不到目标的service服务 才会报错的 但我手机和手表匹配后 能列出手机的蓝牙服务 其中有我需要的uuid对应的服务!   
fServiceName := 'IrMCSyncServiceClass_UUID';
  fServiceGUI := '{00001104-0000-1000-8000-00805F9B34FB}';


  java.io.ioexception:read failed,socket might closed or timeout 蓝牙通讯connect出错!



file:///C:\Users\Administrator\AppData\Roaming\Tencent\Users\110302124\QQ\WinTemp\RichOle\L3~2KHN543XB{N4U6$@V]GW.png

file:///C:\Users\Administrator\AppData\Roaming\Tencent\Users\110302124\QQ\WinTemp\RichOle\L3~2KHN543XB{N4U6$@V]GW.png


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

1

主题

8

帖子

19

积分

新手上路

Rank: 1

积分
19
13#
 楼主| 发表于 2015-6-16 15:14:29 | 只看该作者
京东数码购物支持本站
是线程啊 ServerConnectionTH.Start; 我在线程的accept函数前 加了三个addlog提示信息 手表上都能显示出来三段文字 因此不用纠结在这个问题上了 addlog没问题
回复 支持 反对

使用道具 举报

90

主题

293

帖子

8万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
82380
12#
发表于 2015-6-16 15:12:27 | 只看该作者
京东购书支持本站
Start; 就一定是线程吗?
不过,你既然承认这个东西是在线程中运行。

那么发生错误,就是你自找的。
(C)(P)Flying Wang
回复 支持 反对

使用道具 举报

1

主题

8

帖子

19

积分

新手上路

Rank: 1

积分
19
11#
 楼主| 发表于 2015-6-16 15:10:35 | 只看该作者
京东数码购物支持本站
是线程啊 我擦 ServerConnectionTH.Start;
回复 支持 反对

使用道具 举报

90

主题

293

帖子

8万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
82380
10#
发表于 2015-6-16 14:53:20 | 只看该作者
京东数码购物支持本站
不信就算了。我问你是不是线程,你都懒得回答。我更懒得去看你的垃圾代码。
(C)(P)Flying Wang
回复 支持 反对

使用道具 举报

1

主题

8

帖子

19

积分

新手上路

Rank: 1

积分
19
9#
 楼主| 发表于 2015-6-16 14:37:25 | 只看该作者
京东数码购物支持本站
FAdapter := FBluetoothManager.CurrentAdapter;
      ServerConnectionTH := TServerConnectionTH.Create(True);
      ServerConnectionTH.parent := self;

      ServerConnectionTH.FServerSocket := FAdapter.CreateServerSocket(fServiceName, StringToGUID(fServiceGUI), False);
      ServerConnectionTH.Start;
      result:=true;
      addlog('create thread');
回复 支持 反对

使用道具 举报

1

主题

8

帖子

19

积分

新手上路

Rank: 1

积分
19
8#
 楼主| 发表于 2015-6-16 14:29:13 | 只看该作者
京东数码购物支持本站
这个logs是一个tstrings变量,只在主界面的定时器里刷新 而且手表端能显示多个添加进去的logs 因此这个不是问题。
回复 支持 反对

使用道具 举报

90

主题

293

帖子

8万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
82380
7#
发表于 2015-6-16 14:20:12 | 只看该作者
京东数码购物支持本站
我就遇到过 JNI  运行的环境,明明不是线程,但是也不是 UI 线程。所以必须进行线程同步,否则完蛋。
(C)(P)Flying Wang
回复 支持 反对

使用道具 举报

90

主题

293

帖子

8万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
82380
6#
发表于 2015-6-16 14:18:56 | 只看该作者
京东数码购物支持本站
110302124 发表于 2015-6-16 14:11
procedure TUV_BlueTooth.addlog(logstr: string);
begin
  logs.Add(logstr);

procedure TServerConnectionTH.Execute;
如果这个是线程。或者他执行的位置,不是 UI 线程。
那么你肯定出问题。

他是不是线程,你知道。

如果他不是线程。那么有些手机上,这个代码,可能没在 UI 线程上执行。

一样出问题。
(C)(P)Flying Wang
回复 支持 反对

使用道具 举报

1

主题

8

帖子

19

积分

新手上路

Rank: 1

积分
19
5#
 楼主| 发表于 2015-6-16 14:11:56 | 只看该作者
京东数码购物支持本站
程序本身没问题 两台手机能正常收发数据!主要是手表端不能调试 没法跟踪!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|新时代Pascal论坛

GMT+8, 2024-6-24 03:03 , Processed in 0.065746 second(s), 25 queries .

Powered by Discuz! X3

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表