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];
上一篇:ASP.net高校教师信息网站设计与实现
下一篇:asp.net农产品供求信息发布平台设计与实现

Android课程同步练习系统的设计

基于蓝牙和安卓的仪器专用APP的设计和开发

Android智能手机的交互式学习系统的设计

Android移动终端的网上便利...

Android移动互动学习系统学生端设计

Android移动互动学习系统教师端设计

安卓App安全性测试与实现

医院财务风险因素分析及管理措施【2367字】

志愿者活动的调查问卷表

承德市事业单位档案管理...

10万元能开儿童乐园吗,我...

AT89C52单片机的超声波测距...

中国学术生态细节考察《...

神经外科重症监护病房患...

国内外图像分割技术研究现状

C#学校科研管理系统的设计

公寓空调设计任务书