2012-08-14 15 views
7
public class MainActivity extends Activity implements SensorEventListener { 
    private TextView temperaturelabel; 
    private SensorManager sensormanager; 
    private Sensor temperature; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 


    temperaturelabel = (TextView) findViewById(R.id.text); 

    sensormanager = (SensorManager)getSystemService(SENSOR_SERVICE); 

    temperature= sensormanager.getDefaultSensor(Sensor.TYPE_AMBIENT_TEMPERATURE); 

    temperaturelabel.setText(""+temperature.getPower()); 
} 

protected void onResume() { 
    super.onResume(); 
    sensormanager.registerListener(this, temperature, SensorManager.SENSOR_DELAY_FASTEST); 
} 

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

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

public void onSensorChanged(SensorEvent event) { 
     if (event.sensor.getType() != Sensor.TYPE_AMBIENT_TEMPERATURE) return; 

     temperaturelabel.setText(""+temperature.getPower()); 
    } 
} 

मैं डिवाइस से तापमान प्राप्त करना चाहता हूं।एंड्रॉइड पर तापमान सेंसर

मैंने यह कोड लिखा है और मैंने इसे एचटीसी वन एक्स पर आजमाया है, लेकिन यह काम नहीं किया।

+0

क्या आप आउटपुट या त्रुटि पोस्ट कर सकते हैं। – prayagupd

+0

कुछ भी नहीं किया। कोई ग़लती नहीं। कोई अधिसूचना नहीं कोई परिणाम नहीं – Furkan

+0

क्या एचटीसी वन एक्स में तापमान सेंसर भी है? बेशक – nkr

उत्तर

6

एचटीसी एक एक्स का विनिर्देशन कहता है, ऐसा लगता है कि इस डिवाइस में तापमान संवेदक नहीं है।

अपने official specifications में एक नज़र डालें।

+0

ovv। तुम सही हो। धन्यवाद – Furkan

+2

"एंड्रॉइड सेंसर" नामक एंड्रॉइड बाजार में एक ऐप है जो आपको आपके डिवाइस के लिए उपलब्ध और अनुपलब्ध सेंसर की जानकारी देगा। इसे आज़माएं – AndroidCrazy

1

फिलहाल, केवल कुछ उपकरणों में तापमान सेंसर (उदाहरण के लिए, सैमसंग एस 4) है।

तुम हमेशा अगर सेंसर उपलब्ध है परीक्षण करना चाहिए, यानी, {

temperatureSensor = sensormanager.getDefaultSensor(Sensor.TYPE_AMBIENT_TEMPERATURE) 
if (temperatureSensor != null) { 
    /* register listener and do other magic... */ 
} 

आप HTC पर क्या कर सकते हैं, इस प्रणाली में कुछ अन्य thermistor खोजने के लिए और sysfs पथ, जहां अपने मूल्य सामने आ रहा है पढ़ने के लिए है , उदाहरण के लिए, बैटरी में या दबाव सेंसर में थर्मास्टर, अगर इस फोन में कोई है।

इस दृष्टिकोण का दोष यह है कि ये कच्चे थर्मिस्टर मूल्य हैं - कभी-कभी आपको पता होना चाहिए कि उन्हें सेल्सियस की डिग्री में कैसे परिवर्तित किया जाए और इससे भी बदतर, उन्हें मुआवजा नहीं दिया जाता है (जैसा कि एपीआई का तापमान है) - उदाहरण के लिए, अगर फोन कुछ गणना करेगा और प्रोसेसर फोन को गर्म करेगा, तो यह मूल्य परिवेश के तापमान की तुलना में आसानी से 10 डिग्री अधिक हो सकता है और इस प्रकार वास्तव में उपयोगी नहीं है ...

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