我有工作代码将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行时,一切正常(显然除了发送消息)。任何人都能看到我做错了什么。非常感谢 - 提前。
答案 0 :(得分:0)
您是否在清单中设置BLUETOOTH的权限?
<uses-permission android:name="android.permission.BLUETOOTH" />
也许你也需要这个
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
如果您这样做,那么异常消息是什么?