2011-06-19 52 views
1

我想知道智能手机中的光传感器是如何工作的?硬件和软件两方面。任何关于相同的好文章都会有所帮助。 任何帮助表示赞赏。智能手机中的光传感器

回答

0

硬件方面:大多数光传感器是Photodiodes。当暴露在光线下时,它们会产生电流。光线越亮,电流越高。这个电流然后被“转换”为一系列位。

(纯粹从现在开始的理论)然后将其发送到处理光传感器的操作系统部分。它会收到不同的值(哦,是的,有一个光的负载,这是你/ Nope的64000,现在很黑,有一个200),并做任何他应该做的这些值。

0

那么听起来像的人回答在硬件方面。对于软件方面来说,这非常简单。

public class LightTrigger { 
private SensorManager mgr = null; 

    @Override 
public void onCreate(Bundle savedInstanceState) { 
     //YOUR CODE HERE 
     mgr = (SensorManager) ctxt.getSystemService(Context.SENSOR_SERVICE); 
     mgr.registerListener(listener, 
    mgr.getDefaultSensor(Sensor.TYPE_LIGHT), 
    SensorManager.SENSOR_DELAY_UI); 
    } 

    private SensorEventListener listener = new SensorEventListener() { 
     public void onSensorChanged(SensorEvent e) { 
      //Handler code goes here 
     } 

     @Override 
     public void onAccuracyChanged(Sensor sensor, int accuracy) { 
      //I don't usually use this for light 
     } 
    } 
} 

我发现的是,传感器值不会连续变化。我通常会看到传感器上的数值像 - BRIGHT(〜1000) - DIM(〜600) - DARK(〜100) - 两者之间没有任何内容。我认为这可能是因为我的手机上的光线传感器位于手机扬声器旁边的嵌入式(直接照射下)。这大概是为了帮助弄清楚我是否把手机放在我的头上。

希望有帮助!