2011-06-19 11 views
1

スマートフォンの光センサーがどのように機能するのか知りたいですか?そのハードウェアとソフトウェアの両方の側面です。同じことに関する良い記事が参考になるでしょう。 助けていただければ幸いです。スマートフォンの光センサー

答えて

0

ハードウェア側:ほとんどの光センサーはPhotodiodesです。光にさらされると、電流を作り出します。光が明るければ明るいほど電流は大きくなります。この電流は、ビットのシーケンスに「変換」されます。

(これから純粋な理論)これは、光センサを扱うOSの部分に送信されます。それは別の値を受け取るでしょう(ああ、光の負荷があります、ここではあなたのために64000の値があります/いいえ、今はかなり暗いです、そして200を持っています)。

-1

どのように役立つかわかりませんが、ソフトウェア側では、Qt Mobility(Qtのスマートフォン関連ライブラリアドオン)を見ることができます。

http://doc.qt.nokia.com/qtmobility-1.0/sensors-api.htmlにはSensor APIの一覧が表示されます。私はあなたが探しているものがアンビエントライトセンサーだと信じています。ハードウェアについては、クイック検索には、以下のWikipediaのリンクを明らかに

:人々はハードウェア側に答えのようhttp://en.wikipedia.org/wiki/LED_as_light_sensor#LED_as_light_sensor

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)のようなセンサーから値が離れていくのを見ています。私は、自分の電話機の光センサーが電話のスピーカーのすぐ隣に挿入されている(直射日光から陥没している)ためであると思う。おそらく私は私の頭に電話を持っているかどうかを把握するために主に設計されました。

うまくいけば助けてください!

関連する問題