实现QiSDK和pepper机器人的生命周期
声明:本媒体部分图片、文章来源于网络,
版权归原作者所有,如有侵权,请与我联系删除。
声明:本媒体部分图片、文章来源于网络,
版权归原作者所有,如有侵权,请与我联系删除。
实现QiSDK和机器人生命周期
我们已经配置了一个 pepper机器人 应用程序,现在是时候让我们的代码控制Pepper的身体了
Step Action
在 onCreate 方法中注册MainActivity 到 QiSDK :
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Register the RobotLifecycleCallbacks to this Activity.
QiSDK.register(this, this);
}
在 onDestroy 方法中取消注册:
@Override
protected void onDestroy() {
// Unregister the RobotLifecycleCallbacks for this Activity.
QiSDK.unregister(this, this);
super.onDestroy();
}
提示: 您还可以使用 QiSDK.unregister(this) 注销此活动的所有RobotLifecycleCallbacks,注意不要无意中删除应该保持注册的回调
使 MainActivity class 继承 RobotActivity :
public class MainActivity extends RobotActivity
为什么? 此活动在语言交互运行时带来视觉反馈,例如SpeechBar。
更多详细信息,请参阅 掌握Focus和 pepper机器人 生命周期.
public class MainActivity extends RobotActivity implements RobotLifecycleCallbacks
为什么? 这个接口允许RobotLifecycleCallbacks 知道 Activity它何时注册,获得或失去机器人Focus。
更多详细信息,请参阅: 掌握Focus和机器人生命周期.
重写onRobotFocusGained, onRobotFocusLost 和 onRobotFocusRefused 方法:
@Override
public void onRobotFocusGained(QiContext qiContext) {
// The robot focus is gained.
}
@Override
public void onRobotFocusLost() {
// The robot focus is lost.
}
@Override
public void onRobotFocusRefused(String reason) {
// The robot focus is refused.
}
为什么?当相关Activity获得机器人Focus时,onRobotFocusGained方法被调用。获Focus后,我们可以在机器人上执行各种操作。 当onRobotFocusLost方法被调用时,相关Activity失去了Focus,操作将无法在 pepper机器人 上运行。
重要
onRobotFocusGained 和onRobotFocusLost 方法在后台中运行, 当同步使用QiSDK时,UI thread 不会被阻塞