android工作室如何读取磁传感器
android studio how to read magnetic sensor
我有一些代码,我认为可以读取我的 Galaxy S5 上的地磁传感器,但是每当它尝试启动时它立即崩溃,只是简单地说明它崩溃了。我不知道代码可能有什么问题,但似乎没有任何错误。有什么想法吗?
package com.gmail.~~~~~~~~.magnetictest;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity implements SensorEventListener {
private SensorManager mSensorManager;
private Sensor mSensor;
TextView Mtext;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mSensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);
mSensor = mSensorManager.getDefaultSensor(Sensor.TYPE_MAGNETIC_FIELD);
mSensorManager.registerListener(this, mSensor, mSensorManager.SENSOR_DELAY_NORMAL);
}
@Override
public void onSensorChanged(SensorEvent event) {
Mtext.setText(String.valueOf(event.values[0]));
}
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
}
}
您必须在调用 setcontentView 方法后实例化变量。因此,您必须执行以下操作:
Mtext = (TextView)findViewById(R.id.<textview id from activity main>);
我有一些代码,我认为可以读取我的 Galaxy S5 上的地磁传感器,但是每当它尝试启动时它立即崩溃,只是简单地说明它崩溃了。我不知道代码可能有什么问题,但似乎没有任何错误。有什么想法吗?
package com.gmail.~~~~~~~~.magnetictest;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity implements SensorEventListener {
private SensorManager mSensorManager;
private Sensor mSensor;
TextView Mtext;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mSensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);
mSensor = mSensorManager.getDefaultSensor(Sensor.TYPE_MAGNETIC_FIELD);
mSensorManager.registerListener(this, mSensor, mSensorManager.SENSOR_DELAY_NORMAL);
}
@Override
public void onSensorChanged(SensorEvent event) {
Mtext.setText(String.valueOf(event.values[0]));
}
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
}
}
您必须在调用 setcontentView 方法后实例化变量。因此,您必须执行以下操作:
Mtext = (TextView)findViewById(R.id.<textview id from activity main>);