Java 如何在Sphereo同步且我使用多个活动时保持蓝牙连接(适用于android的Sphereo SDK 2.0)
几个月来,当我从一个活动转到另一个活动时,我遇到了一个问题,我想一直保持与Sphero的同步。解决方案是通过Intent传递Sphereo的id,并使用下一个代码重新获得它:Java 如何在Sphereo同步且我使用多个活动时保持蓝牙连接(适用于android的Sphereo SDK 2.0),java,android,bluetooth,sphero-api,Java,Android,Bluetooth,Sphero Api,几个月来,当我从一个活动转到另一个活动时,我遇到了一个问题,我想一直保持与Sphero的同步。解决方案是通过Intent传递Sphereo的id,并使用下一个代码重新获得它: @Override public void onCreate(Bundle savedInstanceState) { super.OnCreate(savedInstanceState); // get the robot object sent through to this Activity
@Override
public void onCreate(Bundle savedInstanceState) {
super.OnCreate(savedInstanceState);
// get the robot object sent through to this Activity
String robotId = getIntent().getStringExtra("robot.id");
Robot robot = RobotProvider.getDefaultProvider().findRobot(robotId);
}
我也有同样的问题,因为SphereoSDK已更改为2.0版。
在这个API中,我也做了同样的操作,将robotId从一个活动传递到另一个活动(通过意图),但对于在最新活动中实例化robot,执行下一个代码是无效的:
Robot Robot=RobotProvider.getDefaultProvider().findRobot(robotId);Sphero机器人=(Sphero)机器人
事实上,我已经检查了robotId是否填写了正确的值,这是正确的,但是我在robot中有空值。为了帮助调试,您可以通过调用
RobotProvider.getDefaultProvider.getRobots()
查询已知机器人列表。另外,在findRobot(robotId)
之前调用RobotProvider.getDefaultProvider.startDiscovery()
将清除您的机器人列表。在API Sphereo 2.0中使用RobotProvider.getDefaultProvider.getRobots()时,它将显示为删除线,因此不起作用。但我正在尝试;)看看答案。