Как сохранить соединение Bluetooth, когда Sphero синхронизирован и я использую несколько Activity (Sphero SDK 2.0 для Android)

Несколько месяцев у меня была проблема, когда я переходил от одной активности к другой, и мне хотелось постоянно сохранять синхронность со 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.


person Fernando Prieto Moyano    schedule 07.04.2014    source источник
comment
Чтобы облегчить отладку, вы можете запросить список известных роботов, вызвав RobotProvider.getDefaultProvider.getRobots(). Кроме того, вызов RobotProvider.getDefaultProvider.startDiscovery() перед findRobot(robotId) очистит ваш список роботов.   -  person wes felteau    schedule 14.04.2014
comment
RobotProvider.getDefaultProvider.getRobots() отображается зачеркнутым, когда вы используете его в API Sphero 2.0, поэтому он не работает. Но я все равно пытаюсь;)   -  person Fernando Prieto Moyano    schedule 15.04.2014
comment
См. ответ на эта тема.   -  person nodnarb    schedule 01.05.2014