将加速度计数据从android发送到蓝牙崩溃的应用程序

时间:2016-03-21 01:40:20

标签: android bluetooth

我有工作代码将SeekBar滑块值发送到蓝牙和android。我想改变它来读取并将加速度计值发送到蓝牙,这样我就可以通过倾斜手机来控制机器人。 Seekbar代码工作得很好。我在onCreate方法中替换了它。 “brightness”是搜索栏的名称,因为它暂时控制着一个led。

brightness.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
        @Override
        public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
            try {
                btSocket.getOutputStream().write(String.valueOf(progress).getBytes());
            } catch (IOException e) {   }
        }
        @Override
        public void onStartTrackingTouch(SeekBar seekBar) { }
        @Override
        public void onStopTrackingTouch(SeekBar seekBar) { }
    });

`将此作为单独的方法

    @Override
public void onSensorChanged(SensorEvent event) {
    int x = (int)((event.values[0]+9.8)*256/2/9.8);
    accelText.setText(" X = " + x);
    try {
        btSocket.getOutputStream().write(String.valueOf(x).getBytes());
    } catch (IOException e) {
            msg("error at btSocket");
    }
}

当然我在onCreate方法中有正确的声明:

    sm = (SensorManager)getSystemService(SENSOR_SERVICE);
    accelerometer = sm.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
    sm.registerListener(this, accelerometer, SensorManager.SENSOR_DELAY_NORMAL);

编译好。当它运行时,我得到“不幸的应用程序已停止工作”消息。当我注释掉btSocket行时,一切正常(显然除了发送消息)。任何人都能看到我做错了什么。非常感谢 - 提前。

1 个答案:

答案 0 :(得分:0)

您是否在清单中设置BLUETOOTH的权限?

<uses-permission android:name="android.permission.BLUETOOTH" />

也许你也需要这个

<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>

如果您这样做,那么异常消息是什么?