在其他活动中如何使用传感器功能?

时间:2018-12-05 08:58:37

标签: java android function sensor public

我正在使用此传感器功能将背景设置为黑色。此项工作正常,但如果我打开新的activity,传感器将无法识别光线变化。我的想法是在其他活动中调用此函数,但是它不起作用。我尝试在其他活动中定义SensorManagerSensorView,但是它也没有用。我可以将此代码复制到每个活动中,但是我不喜欢这种解决方案。请帮助。

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) {

            }
        };

0 个答案:

没有答案