菜单
  

        if (mConnectedThread != null) { // 停止一切已经配对的线程
      mConnectedThread.cancel();
      mConnectedThread = null;
        }
        mConnectThread = new ConnectThread(device); // 开始进行新的配对
        mConnectThread.start();
        setState(STATE_CONNECTING);
    }
    蓝牙通信时,需要向蓝牙端口填写发送数据。
    public void write(byte[] out) {
        ConnectedThread r; // 临时线程
        synchronized (this) { // 同步一个已配对线程的副本
      if (mState != STATE_CONNECTED) return;
      r = mConnectedThread;
        }
        r.write(out); // 填写发送数据并发送
    }
    蓝牙文护一个数据分派处理器,统一将蓝牙数据进行处理。
    private final Handler mHandler = new Handler() {
        @Override
        public void handleMessage(Message msg) {
      switch (msg.what) {
    case MESSAGE_WRITE:
        byte[] writeBuf = (byte[]) msg.obj; // 将发送数据转换
        String writeMessage = new String(writeBuf);
        mChatService.send(writeMessage);
        break;
    case MESSAGE_READ:
        byte[] readBuf = (byte[]) msg.obj; // 提取并重新构造发送数据
        String readMessage = new String(readBuf, 0, msg.arg1);
        BTReader.option(readMessage); // 蓝牙接收器处理接收数据
        break;
      }
        }
    };
    7.5    抖动重排功能实现
    在蓝牙对战中,加入抖动重排功能。可利用的手机传感器有多种选择,例如重力传感器、加速度传感器和陀螺仪等。本课题中,选用常用的重力传感器,原因有二:第一,每部Android手机都配有重力传感器,第二,重力传感器相对简单,使用方便。
    // 获取系统传感器服务
    sensorMgr = (SensorManager) getSystemService(SENSOR_SERVICE);
    sensor = sensorMgr.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
    x = y = 0;    // 假定重力传感器初始坐标值
    z = 10;        // 同上
    SensorEventListener sensorListener = new SensorEventListener() {
            public void onSensorChanged(SensorEvent e) {
                    // 当在0.1秒内重力值在任一坐标上摆动幅度不低于6阶时,
                    // 认为手机抖动
                    if( ((e.values[SensorManager.DATA_X] - x >= 6)
                            || (e.values[SensorManager.DATA_Y] - y >= 6)
                            || (e.values[SensorManager.DATA_Z] - z >= 6))
                            && (e.timestamp - timestamp < 100000000))
                                gameView.change();
                    
                    x = e.values[SensorManager.DATA_X];
                    y = e.values[SensorManager.DATA_Y];
                    z = e.values[SensorManager.DATA_Z];
  1. 上一篇:ASP.net高校教师信息网站设计与实现
  2. 下一篇:asp.net农产品供求信息发布平台设计与实现
  1. JAVA基于安卓平台的医疗护工管理系统设计

  2. 基于安卓系统的测量软件...

  3. android学习行为共享系统的设计与实现

  4. android+mysql城市雨伞共享平台的设计与实现

  5. android冠字号码的二维码打印及查看软件设计

  6. 安卓媒体播放器的设计与实现

  7. Android的天气预报客户端的设计与实现

  8. 乳业同业并购式全产业链...

  9. 酸性水汽提装置总汽提塔设计+CAD图纸

  10. 大众媒体对公共政策制定的影响

  11. 杂拟谷盗体内共生菌沃尔...

  12. 中考体育项目与体育教学合理结合的研究

  13. 十二层带中心支撑钢结构...

  14. 当代大学生慈善意识研究+文献综述

  15. 河岸冲刷和泥沙淤积的监测国内外研究现状

  16. 电站锅炉暖风器设计任务书

  17. java+mysql车辆管理系统的设计+源代码

  

About

751论文网手机版...

主页:http://www.751com.cn

关闭返回