2010-05-18 14 views
17

मैं उपलब्ध सेंसर की एक सूची प्रदर्शित करने की कोशिश कर रहा हूं लेकिन ऐसा नहीं है!
मैं सोच रहा था कि यह एमुलेटर की वजह से था, लेकिन मैंने इसे फोन पर करने की कोशिश की और नतीजा वही है।एक एंड्रॉइड सेंसर सूची प्रदर्शित करें

private SensorManager mSensorManager; 
TextView mSensorsTot,mSensorAvailables; 

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    // Get the texts fields of the layout and setup to invisible 
    mSensorsTot = (TextView) findViewById(R.id.sensoritot); 
    mSensorAvailables = (TextView) findViewById(R.id.sensoridisponibili); 

    // Get the SensorManager 
    mSensorManager= (SensorManager) getSystemService(SENSOR_SERVICE); 

    // List of Sensors Available 
    List<Sensor> msensorList = mSensorManager.getSensorList(SensorManager.SENSOR_ALL); 

    // Print how may Sensors are there 
    mSensorsTot.setText(msensorList.size()+" "+this.getString(R.string.sensors)+"!"); 

    // Print each Sensor available using sSensList as the String to be printed 
    String sSensList = new String(""); 
    Sensor tmp; 
    int x,i; 
    for (i=0;i<msensorList.size();i++){ 
    tmp = msensorList.get(i); 
    sSensList = " "+sSensList+tmp.getName(); // Add the sensor name to the string of sensors available 
    } 
    // if there are sensors available show the list 
    if (i>0){ 
    sSensList = getString(R.string.sensors)+":"+sSensList; 
    mSensorAvailables.setText(sSensList); 
    } 
} 

उत्तर

24

निरंतर SensorManager.SENSOR_ALL बहिष्कृत है और अब और काम नहीं कर रहा है।

इसके बजाय Sensor.TYPE_ALL के साथ सेंसर सूची क्वेरी करें और इसे काम करना चाहिए (मेरा एमुलेटर "गोल्डफिश 3-अक्ष एक्सेलेरोमीटर" देता है)।

+0

काम करता है, अंगूठे ऊपर! धन्यवाद – Skatephone

0

सेंसर मैनेजर क्लास के getSensorList (int type) सेंसर ==> सूची की एक सूची देता है। (किसी निश्चित प्रकार के उपलब्ध सेंसर की सूची प्राप्त करने के लिए।)

सभी सेंसर प्राप्त करने के लिए सेंसर.TYPE_ALL का उपयोग करें। विभिन्न प्रकार के सेंसर प्राप्त करने के लिए कई कॉल करें।

4

आप इस कोड की कोशिश कर सकते हैं: -

package com.example.sensor; 

import java.util.List; 

import android.content.Context; 
import android.hardware.Sensor; 
import android.hardware.SensorManager; 
import android.os.Bundle; 
import android.support.v7.app.ActionBarActivity; 
import android.widget.ArrayAdapter; 
import android.widget.ListView; 

public class MainActivity extends ActionBarActivity { 

SensorManager smm; 
List<Sensor> sensor; 
ListView lv; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    smm = (SensorManager) getSystemService(Context.SENSOR_SERVICE); 
    lv = (ListView) findViewById (R.id.listView1); 
    sensor = smm.getSensorList(Sensor.TYPE_ALL); 
    lv.setAdapter(new ArrayAdapter<Sensor>(this, android.R.layout.simple_list_item_1, sensor)); 
} 
} 

बस एक सूची दृश्य डाल अपने XML लेआउट में।

1

आप नीचे दिए गए के रूप में सेंसर लिस्टिंग कोशिश कर सकते हैं: -

स्ट्रिंग cAPP_FOLDER = अपने फ़ोल्डर

स्ट्रिंग cSENSOR_FILE = आपकी फ़ाइल का नाम का मार्ग

// Create a file to export the sensor info. 
File fp = new File(cAPP_FOLDER + cSENSOR_FILE); 
fp.createNewFile(); 
PrintWriter pw = new PrintWriter(new FileWriter(fp, true)); 

SensorManager oSM = (SensorManager) context.getSystemService(Context.SENSOR_SERVICE); 
List<Sensor> sensorsList = oSM.getSensorList(Sensor.TYPE_ALL); 
for (Sensor s : sensorsList) { 
    pw.write(s.toString() + "\n"); 
} 
pw.close(); 

/////// ////////////////////////////////////////////////// /////////////////////

// आउटपुट फ़ाइल

{सेंसर नाम = "BOSCH Accelerometer सेंसर", विक्रेता = "बॉश Sensortec GmbH", संस्करण = 2, type = 1, maxRange = 156.88, संकल्प = 5.984497E -4, शक्ति = 0.13, minDelay = 10000}

{सेंसर नाम = "BOSCH चुंबकीय क्षेत्र सेंसर", विक्रेता = "बॉश Sensortec GmbH", संस्करण = 2, type = 2, maxRange = 1600.0, संकल्प = 0.3, शक्ति = 0.5, minDelay = 40000}

{सेंसर नाम = "बॉश ओरिएंटेशन सेंसर", विक्रेता = "बॉश सेंसरोर्टैक जीएमबीएच", संस्करण = 2, टाइप = 3, मैक्सरेंज = 360.0, रेज़ोल्यूशन = 1.0, पावर = 0.63, मिनडेले = 5000}

{सेंसर नाम = "बॉश Gyroscope सेंसर ", विक्रेता =" बॉश सेंसरोर्ट जीएमबीएच ", संस्करण = 2, प्रकार = 4, maxRange = 2500.0, संकल्प = 0.003814 6 9 73, पावर = 5.0, मिनीडेले = 5000}

{सेंसर नाम = "बॉश ग्रेविटी सेंसर", विक्रेता = "बॉश सेंसरोर्ट जीएमबीएच", संस्करण = 2, टाइप = 9, मैक्सरेंज = 1 9 .66, रेज़ोल्यूशन = 5.984497 ई -4 , बिजली = 5.63, minDelay = 5000}

{सेंसर नाम = "बॉश रैखिक त्वरण सेंसर", विक्रेता = "बॉश सेंसरोर्ट जीएमबीएच", संस्करण = 2, प्रकार = 10, maxRange = 19.61, संकल्प = 5.984497 ई -4 , बिजली = 5.63, minDelay = 5000}

{सेंसर नाम = "बॉश रोटेशन वेक्टर सेंसर", विक्रेता = "बॉश सेंसरोर्ट जीएमबीएच", संस्करण = 2, प्रकार = 11, maxRange = 1.0, संकल्प = 5.9604645 ई -8 , बिजली = 5.63, minDelay = 5000}

{सेंसर नाम = "बॉश मैग्नेटिक फील्ड Uncalibrated सेंसर", विक्रेता = "बॉश सेंसरोर्ट जीएमबीएच", संस्करण = 2, प्रकार = 14, maxRange = 1600।0, रेज़ोल्यूशन = 0.3, पावर = 0.5, मिनडेले = 40000}

{सेंसर नाम = "बॉश गेम रोटेशन वेक्टर सेंसर", विक्रेता = "बॉश सेंसरोर्ट जीएमबीएच", संस्करण = 2, टाइप = 15, maxRange = 1.0, रेज़ोल्यूशन = 5.9604645 ई -8, पावर = 5.63, मिनडेले = 5000}

{सेंसर नाम = "बॉश Gyroscope Uncalibrated सेंसर", विक्रेता = "बॉश सेंसरोर्ट जीएमबीएच", संस्करण = 2, टाइप = 16, maxRange = 2500.0, रेज़ोल्यूशन = 0.0038146973, पावर = 5.0, मिनडेले = 5000}

{सेंसर नाम = "बॉश जियोमैग्नेटिक रोटेशन वेक्टर सेंसर", विक्रेता = "बॉश सेंसरोर्ट जीएमबीएच", संस्करण = 2, टाइप = 20, maxRange = 1.0, resolution = 5.9604645 ई -8, पावर = 5.63, मिनडेले = 5000}

{सेंसर नाम = "प्रकाश", विक्रेता = "MTK", संस्करण = 1, type = 5, maxRange = 10240.0, संकल्प = 1.0, शक्ति = 0.13, minDelay = 0}

{सेंसर नाम = "PROXIMITY ", विक्रेता =" एमटीके ", संस्करण = 1, प्रकार = 8, maxRange = 1.0, संकल्प = 1.0, शक्ति = 0.13, minDelay = 0}

{सेंसर नाम =" SIGNIFICANT_MOTION ", विक्रेता =" एमटीके ", संस्करण = 1, प्रकार = 17, maxRange = 85.0, संकल्प = 0.1, शक्ति = 0.5, minDelay = -1}

+0

जबकि इस कोड स्निपेट का स्वागत है, और कुछ मदद प्रदान कर सकता है, यह [* मेटा.स्टैक एक्सचेंज /q/114762) * में * कैसे * और * क्यों * हल करता है, इसमें बहुत सुधार हुआ होगा समस्या। याद रखें कि आप भविष्य में पाठकों के लिए सवाल का जवाब दे रहे हैं, न केवल उस व्यक्ति से पूछ रहे हैं! स्पष्टीकरण जोड़ने के लिए कृपया अपना उत्तर संपादित करें, और संकेत दें कि कौन सी सीमाएं और धारणाएं लागू होती हैं। –

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