Как использовать функцию датчика в других видах деятельности? - PullRequest
0 голосов
/ 05 декабря 2018

Я использую эту функцию датчика, чтобы установить черный фон.Он прекрасно работает для этого действия, но если я открою новый 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) {

            }
        };
...