2011-06-22 15 views
6

शुरू करें और रोकें मैं आईफोन में सेंसर एक्शन पर काम कर रहा हूं और मैं सोच रहा था कि अगर कोई एंड्रॉइड में स्टार्ट सेंसर को शुरू करने और रोकने के तरीके को जानता है। मैंने इस मंच की खोज की है लेकिन कुछ निश्चित नहीं ढूंढ पाई है। क्या कोई है और सुराग करता है?सेंसर एंड्रॉइड

उत्तर

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 सहेजने, आदि, आप एक unlistener onPause का उपयोग करें और रजिस्टर फिर onResume

 mSensorManager.unregisterListener(this); 

मुझे आशा है कि इसे शुरू करने में मदद ..... सभी आप जानना चाहते हैं, HERE

+0

आप सर एक जीवन बचतकर्ता हैं :) बहुत बहुत धन्यवाद !! – user788511

+3

अगर मुझे '100' +1 देने का मौका मिला, तो मैं यह आपके लिए करूँगा, इस पूरे SO में, किसी ने कभी भी 'पंजीकरण रद्द करने वाले' का उपयोग करने के लिए कहा नहीं है – VenomVendor

2

यहाँ एक नज़र डालें: एक गतिविधि पर http://developer.android.com/reference/android/hardware/SensorManager.html

+0

अरे मैनुअल, करता है सकते हैं की जरूरत है यह वास्तव में आईफोन में वैसे ही काम करेगा? क्षमा करें, मैं उस कार्यान्वयन से परिचित नहीं हूं। धन्यवाद। – user788511

+0

क्या कोई भी एक कामकाजी उदाहरण प्रदान करेगा जो मैं संदर्भित कर सकता हूं? धन्यवाद। – user788511

संबंधित मुद्दे