近接センサー ( http://thecodeartist.blogspot.co.il/2011/01/proximity-sensor-on-android-gingerbread.html )をリッスンする簡単なアクティビティを作成し、それをテストしようとしています。私のエミュレータ。そのアプリは実際のデバイスで動作します (Nexus 4 で確認)。
そのアラートを呼び出すためにDDMSの「ロケーションコントロール」内のいくつかの値を変更する必要があることをどこかで読んでいます(たとえば、https://stackoverflow.com/questions/15048559/can-i-test-proximity-alert- in-the-emulator )、まだわかりません - 「Far」または「Near」のみを警告する近接センサーと位置はどのように関連していますか?
よろしくお願いします。
これは私のコードです(一般的でシンプル):
package com.example.proximitysensor;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.widget.Toast;
public class MainActivity extends Activity implements SensorEventListener {
private SensorManager mSensorManager;
private Sensor mProximitySensor;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mSensorManager = (SensorManager)getSystemService(SENSOR_SERVICE);
mProximitySensor = mSensorManager.getDefaultSensor(Sensor.TYPE_PROXIMITY);
}
protected void onResume()
{
super.onResume();
mSensorManager.registerListener(this, mProximitySensor, SensorManager.SENSOR_DELAY_NORMAL);
}
@Override
protected void onPause() {
super.onPause();
mSensorManager.unregisterListener(this);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public void onAccuracyChanged(Sensor arg0, int arg1) {
// TODO Auto-generated method stub
}
@Override
public void onSensorChanged(SensorEvent event) {
if (event.values[0] == 0)
{
Toast.makeText(this, "near", Toast.LENGTH_LONG).show();
}
else
{
Toast.makeText(this, "far", Toast.LENGTH_LONG).show();
}
}
}