2016-06-27 3 views
0

Я работаю с Camera2API и мне нужно, чтобы отключить возможность сделать снимок, если снаружи не хватает света ...Как проверить количество света?

Я думал о том, что, когда пользователь с помощью стандартной камеры он есть настройки для вспышки (авто Режим).

Если я правильно понимаю, камера работает с каким-то датчиком, который определяет количество света, и если этого недостаточно, вспышка работает.

Как подключить этот датчик?

+0

смотрите: https: // разработчик. android.com/guide/topics/sensors/sensors_overview.html, является TYPE_LIIGHT, что вы ищете? – angryip

ответ

1

Вы могли бы использовать что-то похожее на код, перечисленные здесь:

https://developer.android.com/guide/topics/sensors/sensors_environment.html

Измените его так, чтобы работать с датчиком света:

public class SensorActivity extends Activity implements SensorEventListener { 
    private SensorManager mSensorManager; 
    private Sensor mLight; 

    @Override 
    public final void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    // Get an instance of the sensor service, and use that to get an instance of 
    // a particular sensor. 
    mSensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE); 
    mLight= mSensorManager.getDefaultSensor(Sensor.TYPE_LIGHT); 
    } 

    @Override 
    public final void onAccuracyChanged(Sensor sensor, int accuracy) { 
    // Do something here if sensor accuracy changes. 
    } 

    @Override 
    public final void onSensorChanged(SensorEvent event) { 
    float luminosity = event.values[0]; 
    // Do something with this sensor data. 
    } 

    @Override 
    protected void onResume() { 
    // Register a listener for the sensor. 
    super.onResume(); 
    mSensorManager.registerListener(this, mLight, SensorManager.SENSOR_DELAY_NORMAL); 
    } 

    @Override 
    protected void onPause() { 
    // Be sure to unregister the sensor when the activity pauses. 
    super.onPause(); 
    mSensorManager.unregisterListener(this); 
    } 
} 
+0

Спасибо большое !!! –