2011-06-22 14 views
6

私はiPhoneのセンサーアクションに取り組んでいます。誰かがAndroidの起動と停止のセンサーアクションを実装する方法を知っているのだろうかと思いました。私はこのフォーラムを検索しましたが、決定的なものを見つけることができませんでした。誰かがハエと手掛かりはありますか?センサーの起動と停止を実装するandroid

答えて

12

センサーをアクティビティに使用するのは簡単です。基本的には次のものが必要です:

1必要なセンサーを宣言してください。

// Sensor static 
static private SensorManager mSensorManager; 
static private List<Sensor> deviceSensors; 
static private Sensor mAccelerometer; 
static private Sensor mGravity; 
static private Sensor mGyroscope; 
static private Sensor mLinearAcceleration; 
static private Sensor mRotationVector; 
static private Sensor mOrientation; 
static private Sensor mMagneticField; 
static private Sensor mProximity; 
static private Sensor mPressure; 
static private Sensor mLight; 

2ºあなたはすべてのonCreate、このような何かinitializateする必要があります。

 // Add sensor manager STATIC (only 1 time) 
    mSensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE); 
    deviceSensors = mSensorManager.getSensorList(Sensor.TYPE_ALL); 


    // Load default Sensors 
    loadDefaultSensors(); 

    // Set Sensor Listener 
    setAllSensorListener(); 

3ºloadDefaultSensorsそれはこのような何か:

 mAccelerometer = mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER); 
    mGravity = mSensorManager.getDefaultSensor(Sensor.TYPE_GRAVITY); 
    mGyroscope = mSensorManager.getDefaultSensor(Sensor.TYPE_GYROSCOPE); 
    mLinearAcceleration = mSensorManager.getDefaultSensor(Sensor.TYPE_LINEAR_ACCELERATION); 
    mRotationVector = mSensorManager.getDefaultSensor(Sensor.TYPE_ROTATION_VECTOR); 
    mOrientation = mSensorManager.getDefaultSensor(Sensor.TYPE_ORIENTATION); 
    mMagneticField = mSensorManager.getDefaultSensor(Sensor.TYPE_MAGNETIC_FIELD); 
    mProximity = mSensorManager.getDefaultSensor(Sensor.TYPE_PROXIMITY); 
    mPressure = mSensorManager.getDefaultSensor(Sensor.TYPE_PRESSURE); 
    mLight = mSensorManager.getDefaultSensor(Sensor.TYPE_LIGHT); 

そして4には、リスナーを設定します。

 mSensorManager.registerListener(this, mAccelerometer, SensorManager.SENSOR_DELAY_NORMAL); 
    mSensorManager.registerListener(this, mGravity, SensorManager.SENSOR_DELAY_NORMAL); 
    mSensorManager.registerListener(this, mGyroscope, SensorManager.SENSOR_DELAY_NORMAL); 
    mSensorManager.registerListener(this, mLinearAcceleration, SensorManager.SENSOR_DELAY_NORMAL); 
    mSensorManager.registerListener(this, mRotationVector, SensorManager.SENSOR_DELAY_NORMAL); 
    mSensorManager.registerListener(this, mOrientation, SensorManager.SENSOR_DELAY_NORMAL); 
    mSensorManager.registerListener(this, mMagneticField, SensorManager.SENSOR_DELAY_NORMAL); 
    mSensorManager.registerListener(this, mProximity, SensorManager.SENSOR_DELAY_NORMAL); 
    mSensorManager.registerListener(this, mPressure, SensorManager.SENSOR_DELAY_NORMAL); 
    mSensorManager.registerListener(this, mLight, SensorManager.SENSOR_DELAY_NORMAL); 

5ºIあなたがなど、CPUを保存する必要があるF、あなたがunlistener onPauseを使用して、再度onResume

 mSensorManager.unregisterListener(this); 

を登録することができ、私はそれを開始するために助けを願って.....あなたが知る必要があるすべて、HERE

+0

あなたは人生保護人です:)多くの感謝!! – user788511

+3

私は '100' +1を与える機会があれば、私はあなたのためにやるだろう。この全体で、誰も' unregisterListener' – VenomVendor

関連する問題