簡體   English   中英

如何讓android在呼叫中做出反應並觸發接近傳感器?

[英]How can I make android react as in a call and the proximity sensor is triggered?

我有一個應用程序可以調用VoIp。 在那些電話中,我希望屏幕能夠像在正常通話期間那樣做出反應。 也就是說,我希望屏幕禁用所有事件,並在用戶觸發接近傳感器時關閉。 當然,當用戶將手機從手機上移開時,我希望手機能夠打開屏幕並啟用所有事件。 我以前試過自己關掉屏幕。 從未工作過。 所以我以為我用過這個解決方案。

我發現了一個類似的問題,它使用來自Android手機應用程序的樣本提供了關於接近傳感器的一些很好的信息。

android:靠近臉部時關閉屏幕

以下是可以幫助您的代碼..這演示了我們如何使用SensorManager Class訪問接近傳感器,這里接近傳感器會觸發它調用一個方法來更改圖像視圖,您可以嘗試使用該方法的代碼.... ,在這里獲取整個源代碼

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);             
        }
    }
};
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM