我正在使用此传感器功能将背景设置为黑色。此项工作正常,但如果我打开新的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) {
}
};