2011-08-08 17 views
13

मैं अपने प्रोजेक्ट के लिए एंड्रॉइड ऐप विकसित कर रहा हूं, मुझे इसके हिस्से के रूप में कमरे का तापमान ढूंढना होगा। मैं परीक्षण के लिए Droid 2 A955 मॉडल का उपयोग कर रहा हूँ।एंड्रॉइड कोड में प्रोग्राम तापमान के रूप में कमरे के तापमान को खोजने/समझने के लिए कोई एंड्रॉइड एपीआई है?

मेरे प्रश्न हैं:

  1. क्या सेंसर मेरे Android फ़ोन में उपलब्ध होने की जरूरत है इस तापमान संवेदन कार्य करने के लिए?

  2. प्रकाश संवेदक इस कार्य करने में मदद (Droid 2 में उपलब्ध) परिवेश कर सकते हैं?

  3. वहाँ किसी भी एंड्रॉयड मेरी एंड्रॉयड कोड में/भावना कमरे के तापमान प्रोग्राम के रूप में खोजने के लिए एपीआई है?

आपकी मदद के लिए अग्रिम धन्यवाद।

+0

# 2 या तो व्यर्थ या काफी खुला समाप्त हो गया है के लिए देखते हैं। कुछ बाहरी वस्तुओं के साथ, लगभग कुछ भी "मदद" कर सकता है उदाहरण के लिए आप कैमरे को थर्मामीटर पर इंगित कर सकते हैं, या उस प्रकाश को लक्षित कर सकते हैं जो प्रकाश सेंसर पर तापमान को एन्कोड करता है। –

+0

हां, मैं सहमत हूं कि # 2 असंबंधित है। लेकिन, मैं एंड्रॉइड बाजार में "थर्मो" ऐप पर संदेह कर रहा था, यह ऐप वास्तव में कमरा अस्थायी कैसे दे रहा है। क्या यह एक नकली ऐप है? "http://www.appbrain.com/app/thermo/com.antonio.thermo2.activity" – tinku

+0

आपको एपीआई की आवश्यकता क्यों है? इसके बजाए हार्डवेयर सेंसर का प्रयोग करें! संपादित करें मुझे पता चला कि मेरी माँ का फोन (गैलेक्सी एस 4) तापमान सेंसर का एकमात्र सहायक है। – Confuse

उत्तर

12

अपने सभी तीन सवालों के जवाब देने के लिए एक झुकाव, नहीं, मुझे विश्वास नहीं है। एंड्रॉइड उपकरणों में तापमान सेंसर हो सकता है, लेकिन यह बैटरी के तापमान को महसूस करता है, बाहरी तापमान नहीं। यह उस उद्देश्य के लिए एक सटीक गेज प्रदान नहीं करेगा।

मुझे यकीन नहीं है कि परिवेश प्रकाश संवेदक तापमान के साथ कैसे मदद करेगा, यह बहुत उज्ज्वल हो सकता है लेकिन यह एक वातानुकूलित कमरे में हो सकता है।

आखिरकार: तापमान ऐप्स के कई उदाहरण हैं, लेकिन फिर से, अधिकांश बैटरी से संबंधित हैं।

संपादित करें:Official documentation says:

Device implementations MAY but SHOULD NOT include a thermometer (i.e. temperature sensor.) If a device implementation does include a thermometer, it MUST measure the temperature of the device CPU. It MUST NOT measure any other temperature. (Note that this sensor type is deprecated in the Android 2.3 APIs.)

अद्यतन:

एपीआई स्तर 14 (अर्थात Android 4.0) के बाद से, परिवेश के तापमान को मापने के लिए समर्थन जोड़ा गया है (TYPE_AMBIENT_TEMPERATURE के माध्यम से)।[Android doc reference]

हालांकि, यह परिवेश तापमान सेंसर वाले उपकरणों पर ही काम करेगा।

+0

संदर्भ के लिए धन्यवाद, अब मैं droid 2 में temp सेंसर के उपयोग को समझता हूं। – tinku

+0

हाय, आपका पहला लिंक अब और काम नहीं करेगा। –

2

आप Sensor reference docs देखेंगे। ऑफहैंड, मुझे नहीं लगता कि बोर्ड पर अधिकतर हैंडहेल्ड पर पहुंचने योग्य तापमान सेंसर हैं।

2

प्रलेखन में Sensor class पर एक नज़र डालें।

आप this की तर्ज पर कुछ करने की जरूरत है:

public class SensorActivity extends Activity, implements SensorEventListener { 
private final SensorManager mSensorManager; 
private final Sensor mTemp; 

public SensorActivity() { 
    mSensorManager = (SensorManager)getSystemService(SENSOR_SERVICE); 
    mtemp = mSensorManager.getDefaultSensor(Sensor.TYPE_TEMPERATURE); 
} 

protected void onResume() { 
    super.onResume(); 
    mSensorManager.registerListener(this, mTemp, SensorManager.SENSOR_DELAY_NORMAL); 
} 

protected void onPause() { 
    super.onPause(); 
    mSensorManager.unregisterListener(this); 
} 

public void onAccuracyChanged(Sensor sensor, int accuracy) { 
} 

public void onSensorChanged(SensorEvent event) { 
} 
} 

यह आपको अपने आप गतिविधि में तापमान सेंसरों के लिए पहुँच देना चाहिए।

इसके साथ खेलो और देखें कि आप क्या पा सकते हैं। प्रलेखन के अन्य प्रकार के सेंसर के लिए महान उदाहरण हैं, अस्थायी सेंसर प्रदान किए गए अधिकांश लोगों की तुलना में भी सरल होना चाहिए।

आशा है कि इससे मदद मिलती है!

+1

क्या आप इस तथ्य के लिए कह सकते हैं कि यह परिवेश का तापमान प्रदान करता है न कि सीपीयू या बैटरी अस्थायी? –

+2

यह वास्तव में बैटरी/सीपीयू तापमान है। एंड्रॉइड एपीआई 14 (आइस क्रीम सैंडविच) अब सेंसर का समर्थन करता है। वाईपीE_AMBIENT_TEMPERATURE। – Tom

11

ऐसा लगता है कि a new sensor in the API है।

यह एक परिवेश के तापमान के लिए है, लेकिन शायद इस कार्यान्वित के साथ कुछ ही डिवाइस हैं।

अद्यतन: ऐसा लगता है कि Galaxy S4 पहले परिवेश के तापमान संवेदक

+2

केवल 4.0 और ऊपर उपलब्ध है। – Flynn81

1

एकीकृत आप किक से iCelsius वायरलेस फोन का उपयोग कर सकते है। इसमें एक एपीआई है। स्मार्टफोन से आंतरिक सेंसर का उपयोग करके सटीक तापमान मापना असंभव है। यह हमेशा उच्च डिग्री के लिए कुछ डिग्री होगी।

0

मेरे पास आपका प्रश्न बहुत समय पहले ही है। और मेरे मिली क्या है:

  • जांच पर्यावरण सेंसर
  • पर्यावरण सेंसर के लिए इस tuts के लिए this आधिकारिक साइट: परिवेश तापमान (कमरे के अस्थायी) परिवेशी प्रकाश ... Tutsplus। मेरे फोन पर केवल परिवेश लाइट काम
  • अब मुझे पता है कि केवल सैमसंग गैलेक्सी एस 4 में परिवेश तापमान है। यदि आपके पास जीजी प्लेस्टोर पर एस 4 खोज होलो परिवेश तापमान है।
0

प्रयास करें यह एक:

SensorManager mySensorManager = (SensorManager) getSystemService(SENSOR_SERVICE); 
    Sensor AmbientTemperatureSensor 
      = mySensorManager.getDefaultSensor(Sensor.TYPE_AMBIENT_TEMPERATURE); 
    if (AmbientTemperatureSensor != null) { 
     mySensorManager.registerListener(
       AmbientTemperatureSensorListener, 
       AmbientTemperatureSensor, 
       SensorManager.SENSOR_DELAY_NORMAL); 
    } 
01:

private float temperature = 0; 

onCreate में wìthis कोड डाल

और नीचे दी गई विधि:

private final SensorEventListener AmbientTemperatureSensorListener 
      = new SensorEventListener() { 

     @Override 
     public void onAccuracyChanged(Sensor sensor, int accuracy) { 
      // TODO Auto-generated method stub 

     } 

     @Override 
     public void onSensorChanged(SensorEvent event) { 
      if (event.sensor.getType() == Sensor.TYPE_AMBIENT_TEMPERATURE) { 
       temperature = event.values[0]; 
      } 
     } 

    }; 
0

फोन दे साल की उम्र पुराना तरीका और एक "अच्छा" थर्मामीटर कमरे के तापमान पर स्थिर (कुछ ही घंटों के) और दोनों को पढ़ने नहीं है।

फिर इसे लगभग 35 एफ पर एक अच्छी विंट्री गेराज में बाहर रखें इसे स्थिर करने दें। फिर रैखिकता के लिए प्रार्थना करें।

अनुभवजन्य हमेशा अच्छा रहता है। मैं बहुत एक खाली घर में एक निरंतर तापमान को मापने में दिलचस्पी है, और तापमान छोड़ने (या बढ़ती !!)

ब्रेडशॉ पर Buzzards Bay

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