Несколько месяцев у меня была проблема, когда я переходил от одной активности к другой, и мне хотелось постоянно сохранять синхронность со Sphero. Решение заключалось в передаче идентификатора Sphero по Intent и возмещении его с помощью следующего кода:
@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);
}
У меня такая же проблема из-за того, что Sphero SDK изменился для модели 2.0.
В этом API я сделал то же самое, чтобы передать robotId из действия в другое (по намерению), но для создания экземпляра робота в новейшем действии следующий код не работает:
Робот-робот = RobotProvider.getDefaultProvider().findRobot(robotId); Sphero mRobot= (Сферо) робот;
На самом деле, я проверил, заполнен ли robotId правильным значением, и это правильно, но у меня есть нулевое значение в robot.
RobotProvider.getDefaultProvider.getRobots()
. Кроме того, вызовRobotProvider.getDefaultProvider.startDiscovery()
передfindRobot(robotId)
очистит ваш список роботов. - person wes felteau   schedule 14.04.2014