gpt4 book ai didi

android - 是否可以在 onCreate 方法中获取 Android 加速度计值?

转载 作者:行者123 更新时间:2023-11-30 03:33:19 26 4
gpt4 key购买 nike

是否可以在 onCreate 方法中获取 Android 加速度计值?我要它,以便在读取它们之后进行一些初始化。到目前为止,我已经注册了一个传感器监听器,当它们通过 onSensorChanged 发生变化时获取这些值打回来。我有 3 个浮点属性(lastxlastylastz)初始化为 -1,以便在更改时将加速度计值存储在那里。在 onCreate 方法中,注册我的传感器监听器后,我试图检查这些值,但它们始终等于 -1。有没有办法在 onCreate 方法中获取这些值?

这是我的代码:

public class MainActivity extends Activity implements SensorEventListener {
private SensorManager sensorManager;

TextView textView;
StringBuilder builder = new StringBuilder();
float lastx = -1;
float lasty = -1;
float lastz = -1;

@Override
public void onCreate(Bundle savedInstanceState){

super.onCreate(savedInstanceState);
textView = new TextView(this);

SensorManager manager = (SensorManager)
getSystemService(Context.SENSOR_SERVICE);

Sensor accelerometer = manager.getDefaultSensor(
Sensor.TYPE_ACCELEROMETER);

if(!manager.registerListener(this, accelerometer,
SensorManager.SENSOR_DELAY_GAME)){
Log.d("ERROR: ", "NO accelerometer found!");
}

setContentView(textView);
builder.setLength(0);

builder.append(
"X " + this.lastx + "\nY " + this.lasty + "\nZ " + this.lasty);
textView.setText(builder.toString());

Log.d(" * accelerometer values:",
"X: " + this.lastx+", Y: " + this.lasty + ", Z: " + this.lastz);

}

public void onAccuracyChanged(Sensor sensor,int accuracy){

}

public void onSensorChanged(SensorEvent event){

// check sensor type
if(event.sensor.getType()==Sensor.TYPE_ACCELEROMETER){

// assign directions
float x=event.values[0];
float y=event.values[1];
float z=event.values[2];

this.lastx = x;
this.lasty = y;
this.lastz = z;

// builder.setLength(0);
// builder.append("X " + x + "\nY " + y + "\nZ " + z);
// textView.setText(builder.toString());
}
}
}

最佳答案

我认为主用户界面线程用于 onCreateonSensorChanged。因此 onSensorChangedonCreate 完成之前无法运行。无论您需要做什么初始化,我建议您安排在第一次调用 onSensorChanged 时完成,例如如果值为 -1,则进行初始化。

关于android - 是否可以在 onCreate 方法中获取 Android 加速度计值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17042805/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com