Я использую эту функцию датчика, чтобы установить черный фон.Он прекрасно работает для этого действия, но если я открою новый activity
, датчик не распознает изменения освещения.Моя идея - вызывать эту функцию в других действиях, но она не работает.Я пытался определить SensorManager
, Sensor
и View
в других действиях, но это тоже не сработало.Я могу скопировать этот код для каждого вида деятельности, но мне не нравится это решение.Просьба помочь.
private SensorManager mSensorManager;
private Sensor lightSensor;
public View root;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final variables variables=new variables();
View randomView=findViewById(R.id.imageView5);
root=randomView.getRootView();
dark_mode();
}
public void dark_mode() {
if (variables.dark_mode == 2) {
mSensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
lightSensor = mSensorManager.getDefaultSensor(Sensor.TYPE_LIGHT);
SensorEventListener sensor_listener = new SensorEventListener() {
@Override
public void onSensorChanged(SensorEvent event) {
float test = event.values[0];
if (test < 7 && variables.dark_mode == 2)
{
root.setBackgroundColor(getResources().getColor(R.color.black));
}
if (test > 7 && variables.dark_mode == 2)
{
root.setBackgroundColor(getResources().getColor(R.color.white));
}
}
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
}
};