gpt4 book ai didi

android - 如何编写一个类来读取android中的传感器值

转载 作者:行者123 更新时间:2023-11-29 17:56:45 25 4
gpt4 key购买 nike

我是 Android 的初学者。我想读取一些传感器值,例如加速度计和陀螺仪。我看了网站上的教程,发现它应该使用 SensorEventListener

public class MainActivity extends Activity implements SensorEventListener{...}

但我想编写一个类来读取传感器值,而不是在 MainActivity 中编写,因为在 Main 中编写似乎不遵循“软件工程”规则。是否可以这样写:

public class DataCollection implements SensorEventListener{...}

然后使用 MainActivity 调用 DataCollection 读取传感器值并返回 MainActivity?

谁能帮帮我?

最佳答案

我假设您已经阅读了 this .

因此您可以将 SensorEventListener 与 MainActivity 分开。您只需在 MainActivity 中正确注册您的监听器(将“this”替换为您的 DataCollection 对象):

mSensorManager.registerListener(yourDataCollectionObject, mLight, SensorManager.SENSOR_DELAY_NORMAL);

你还必须注销它:

mSensorManager.unregisterListener(yourDataCollectionObject);

它应该可以正常工作。

编辑:您可以这样尝试。

public class MainActivity extends Activity{

DataCollection mDataCollection = null;

@Override
public final void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

mDataCollection = new DataCollection(this);
}

@Override
protected void onResume(){
super.onResume();
mDataCollection.register();
}

@Override
protected void onPause(){
super.onPause();
mDataCollection.unregister();
}
}

public class DataCollection implements SensorEventListener{

private SensorManager mSensorManager;
private Sensor mLight;

public DataCollection(Context context){
mSensorManager = (SensorManager) context.getSystemService(Context.SENSOR_SERVICE);
mLight = mSensorManager.getDefaultSensor(Sensor.TYPE_LIGHT);
}

@Override
public void onAccuracyChanged(Sensor arg0, int arg1){
// TODO

}

@Override
public void onSensorChanged(SensorEvent arg0){
// TODO

}

public void register(){
mSensorManager.registerListener(this, mLight, SensorManager.SENSOR_DELAY_NORMAL);
}

public void unregister(){
mSensorManager.unregisterListener(this);
}
}

关于android - 如何编写一个类来读取android中的传感器值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18759849/

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