В своей основной деятельности я запускаю службу. В этом сервисе я пытаюсь получить диспетчер датчиков, но получаю следующее исключение
Attempt to invoke virtual method 'java.lang.Object android.content.Context.getSystemService(java.lang.String)' on a null object reference.
Ошибка не возникает, если я пытаюсь получить диспетчер датчиков в классе активности, это происходит только в сервисекласс.
Это мой основной класс деятельности:
public class MainActivity extends AppCompatActivity
{
GridLayout mainGrid;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Intent intent = new Intent(MainActivity.this, accelerometerBackgroundService.class);
startService(intent);
mainGrid = (GridLayout) findViewById(R.id.mainGrid);
//Set Event
setSingleEvent(mainGrid);
// setToggleEvent(mainGrid);
}
...
}
Это мой класс обслуживания:
public class accelerometerBackgroundService extends Service implements SensorEventListener
{
//We need to log our activity to check what happens
private static final String TAG = "Accelerometer_Activity";
private SensorManager mSensorManager; //defining a sensor manager and the accelerometer
private Sensor accelerometer;
public accelerometerBackgroundService()
{
Log.i(TAG, "GOT HERE 100");
//getting the sensor manager services
mSensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
//getting the accelerometer sensor
accelerometer = mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
if(accelerometer != null)
{
//If accelerometer sensor is available, create a listener
mSensorManager.registerListener(this,mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER), SensorManager.SENSOR_DELAY_NORMAL);
}
else
{
String noAccelError = "This device does not support accelerometer sensor!";
}
}
...
}
Я думаю, это связано с контекстом. Я искал похожие вопросы, но не помог мне.
Спасибо.