当前位置: 首页 > 面试题库 >

当Sphero同步并且我使用多个活动时,如何保持蓝牙连接

宋安晏
2023-03-14
问题内容

当我与Sphero同步并且想要从一个活动传递到另一个活动时,我的同步丢失了,我必须在新活动中在onCreate中使用此方法来再次获得非同步性:

        **RobotProvider provider = RobotProvider.getDefaultProvider();
        mRobot = provider.findRobot(robot_id);
        provider.initiateConnection(robot_id);
        provider.control(mRobot);
        provider.connectControlledRobots();**

mRobot具有Sphero的MAC地址。但这并不是每次都尝试的好处,我想为所有应用程序保留蓝牙连接,因为我是第一次连接,并且能够保持它而无需再次同步。

我已经看到了Sphero的官方Orbotix应用程序,并且我认为它是完美的,因为同步是永久的。你能以这种方式帮助我吗?


问题答案:

在Orbotix,我们通常使用中央活动,并在其顶部显示临时活动,或者(最近)我们使用FragmentActivity,该活动首先显示负责连接的片段(问题中的同步)。从那里开始,我们使用不同的自定义片段显示不同的屏幕。

如果您绝对需要将漫游器对象发送到另一个活动,则可以将漫游器ID添加到Intent,然后在新的活动中从RobotProvider获取漫游器对象。这还要求您确保不要根据原始Activity的生命周期与Sphero断开连接。

在您的原始活动中:

    private void startNextActivity() {
        Intent nextActivity = new Intent(this, NextActivity.class);
        nextActivity.putExtra("robot.id", mRobot.getUniqueId());
        goingToNextActivity = true;
        startActivity(nextActivity);
    }

    @Override
    protected void onStop() {
        super.onStop();

        // don't disconnect if headed to "NextActivity"
        if (!goingToNextActivity) {
            RobotProvider.getDefaultProvider().disconnect(mRobot);
            mRobot = null;
        }
    }

在您的新活动中:

    @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);
    }


 类似资料:
  • 问题内容: 我正在使用POST方法。我需要创建一次,并且应该使用Keep Alive Connection。但是我认为,它每次都会建立一个新的连接。 因此,我需要使用 保持活动 连接。 这是我的代码段,很多帮助将不胜感激。 而且logcat日志是: 问题答案: 10:07:29.746:D / org.apache.http.headers(1529):>>连接:保持活动 您正在要求保持活动状态。

  • 我的问题是,我已经创建了一个传输控制协议,当它停留没有传输任何数据约1小时,它已经从服务器断开连接,但它不通知我,它已断开连接,我应该发送保持活动的数据包到服务器吗?或者我应该发送保持活动的数据包从服务器到客户端?或者我应该发送两个?

  • 我有一个Android应用程序,即时通讯是其中一个关键功能。为了实现IM特性,我们使用基于的推送服务器。 编辑:我曾建议使用前台服务,但下午不喜欢通知托盘总是显示在状态栏,他希望保持干净。 任何建议都将不胜感激!

  • 我目前正在尝试开发一款软件,需要连接一个蓝牙“经典”设备和至少2-3个蓝牙低能耗设备。当然,与这些设备进行通信,因此仅能够配对设备还不够,还需要与它们进行连接和通信。 我使用Nexus 4(Android 4.3)作为连接到这些蓝牙和蓝牙LE设备的单元。 这是否可能,或者是否存在某种限制,即只能同时连接一种或另一种蓝牙设备?

  • 我在Go中有以下代码。Go使用超文本传输协议保持连接。因此,根据我的理解,不会创建新连接,因为Go语言使用默认的持久连接。 > 据我所知,HTTP持久连接一次只能发出一个请求,即第二个请求只能在第一次响应之后发出。然而,如果多个线程调用会发生什么?将在前一个请求得到响应之前是否发送另一个请求? 我假设服务器超时了客户端建立的任何保持活动的连接。如果服务器超时,那么下一次,它会建立新的连接吗?

  • 问题内容: 错误代码:2013。查询期间丢失与MySQL服务器的连接 我正在使用MySQL Workbench。另外,我正在运行一批插入件,总共约1000行(例如,相乘1000次),每批插入都花费相当多的时间,其中一些超过600秒。 如何配置工作台,使其在一夜之间继续工作,而又不停止且不丢失连接? 问题答案: 从现在不可用的互联网档案中: 转到“编辑”->“首选项”->“ SQL编辑器”,然后将此