我有一个可以进行 VoIP 通话的应用程序。在这些通话期间,我希望屏幕的反应与正常通话时完全一样。也就是说,我希望屏幕禁用所有事件并在用户触发接近传感器时关闭。当然,当用户将耳朵从手机上移开时,我希望手机打开屏幕并启用所有事件。我之前尝试过自己关闭并打开屏幕。从来没有工作过。所以我想我已经使用了这个解决方案。
问问题
2764 次
2 回答
1
我发现了一个类似的问题,它使用 Android 手机应用程序中的示例提供了有关接近传感器的一些重要信息。
于 2012-07-17T17:21:54.783 回答
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 回答