0

VoIP 通話を行うアプリケーションがあります。それらの通話中、通常の通話中とまったく同じように画面が反応するようにしたいと思います。つまり、ユーザーが近接センサーをトリガーすると、画面ですべてのイベントを無効にしてオフにする必要があります。もちろん、ユーザーが電話から耳を離すと、電話で画面がオンになり、すべてのイベントが有効になります。私は自分で画面をオフにしてオンにする前に試しました。働いたことはありません。だから私はこの解決策を使ったと思った。

4

2 に答える 2

1

これは、SensorManagerクラスを使用して近接センサーにアクセスする方法を示すコードです。ここでは、近接センサーがトリガーされ、画像ビューを変更するメソッドが呼び出され、そのメソッドでコードを試すことができます.... 、ここでソースコード全体を入手してください

public class MainActivity extends Activity {
SensorManager sm;
Sensor ProximitySensor;
boolean state=true;
@Override
public void onCreate(Bundle savedInstanceState) 
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    txstate= (TextView) findViewById(R.id.txstate);
    sm = (SensorManager)getSystemService(Context.SENSOR_SERVICE);
    ProximitySensor = sm.getDefaultSensor(Sensor.TYPE_PROXIMITY);
    sm.registerListener(proximitySensorEventListener,  ProximitySensor, SensorManager.SENSOR_DELAY_FASTEST);


}
SensorEventListener proximitySensorEventListener = new SensorEventListener()
{   
  @Override
  public void onAccuracyChanged(Sensor sensor, int accuracy) 
  {

  }
@Override
public void onSensorChanged(SensorEvent event) 
{
if(event.sensor.getType()==Sensor.TYPE_PROXIMITY)


    {if((int)(event.values[0])==1)

        {

                    call();
        }
    }

}

private void call() 

{
        ImageView im = (ImageView) findViewById(R.id.imageView1);
        if(state)
        {
            state =false;                
            im.setImageResource(R.drawable.smile);                   
        }
        else 
        {
            state=true;              
            im.setImageResource(R.drawable.sad);             
        }
    }
};
}
于 2014-09-13T13:31:45.390 に答える
1

私が見つけた同様の質問があり、Android Phone アプリのサンプルを使用して、近接センサーに関する優れた情報が得られます。

android: 顔に近づくと画面をオフにする

于 2012-07-17T17:21:54.783 に答える