2010-08-18 15 views

उत्तर

5
+0

हाँ, मैं दस्तावेज में पाया गया कि:

package edu.uw.android.thorm.wayfinder; import android.app.Activity; import android.hardware.Sensor; import android.hardware.SensorEvent; import android.hardware.SensorEventListener; import android.hardware.SensorManager; import android.os.Bundle; import android.widget.TextView; public class CSensorActivity extends Activity implements SensorEventListener { private SensorManager mSensorManager; private Sensor mCompass; private TextView mTextView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.layoutsensor); mSensorManager = (SensorManager)getSystemService(SENSOR_SERVICE); mCompass = mSensorManager.getDefaultSensor(Sensor.TYPE_ORIENTATION); mTextView = (TextView) findViewById(R.id.tvSensor); } // The following method is required by the SensorEventListener interface; public void onAccuracyChanged(Sensor sensor, int accuracy) { } // The following method is required by the SensorEventListener interface; // Hook this event to process updates; public void onSensorChanged(SensorEvent event) { float azimuth = Math.round(event.values[0]); // The other values provided are: // float pitch = event.values[1]; // float roll = event.values[2]; mTextView.setText("Azimuth: " + Float.toString(azimuth)); } @Override protected void onPause() { // Unregister the listener on the onPause() event to preserve battery life; super.onPause(); mSensorManager.unregisterListener(this); } @Override protected void onResume() { super.onResume(); mSensorManager.registerListener(this, mCompass, SensorManager.SENSOR_DELAY_NORMAL); } } 

निम्नलिखित जुड़े एक्सएमएल फ़ाइल है। दो और प्रश्न: आप आर और मूल्यों को आरंभ करते हैं? साथ ही, क्या सूचनाएं प्राप्त करने का कोई तरीका है, या क्या वह पूरा कामकाजी मॉडल बहिष्कृत है? –

+1

ठीक है, स्रोत आधार में एक अच्छा उदाहरण मिला। मैं इसे यहां कॉपी नहीं करूंगा, लेकिन यदि आप एंड्रॉइड के लिए गिट रिपोजिटरी ब्राउज़ करते हैं, तो विकास/नमूने/कम्पास/src/com/example/android/compass/compassActivity.java –

+1

के अंत देखें अधिसूचनाएं/घटनाएं एक खराब तरीका है सेंसर करने के लिए, यही कारण है कि यह afaik depepted है। प्रत्येक मामूली पहलू परिवर्तन घटनाओं की एक बड़ी संख्या को ट्रिगर करेगा, अनिवार्य रूप से डेटा के साथ यूआई थ्रेड को चकित करेगा। – CodeFusionMobile

8

निम्नलिखित एक बुनियादी उदाहरण है कि कम्पास शीर्षक प्राप्त और एक TextView में यह प्रदर्शित करता है के बाद से उपयोग करने के लिए मानक API कॉल है। यह सेंसरएवेंट लिस्टनर इंटरफ़ेस को कार्यान्वित करके ऐसा करता है। आप उस दर को बदल सकते हैं जिस पर सिस्टम की निम्न पंक्ति में स्थिरता को बदलकर सिस्टम को सिस्टम वितरित किया जाता है (यानी "mSensorManager.registerListener (यह, mCompass, सेंसरमेनगर .SENSOR_DELAY_NORMAL);") (ऑनर्यूम() ईवेंट देखें); हालांकि, सेटिंग केवल सिस्टम के लिए एक सुझाव है। यह उदाहरण उपयोग में नहीं होने पर श्रोता को पंजीकरण और अनधिकृत करके बैटरी जीवन को संरक्षित करने के लिए ऑनर्यूज़() और ऑन पॉज़() विधियों का भी उपयोग करता है। उम्मीद है की यह मदद करेगा।

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical" > 

    <TextView 
     android:id="@+id/tvSensor" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Large Text" 
     android:textAppearance="?android:attr/textAppearanceLarge" /> 

</LinearLayout> 
+3

क्या यह अभी भी बहिष्कृत ओरिएंटेशन सेंसर का उपयोग नहीं कर रहा है जिसे ओपी ने संदर्भित किया है? – Tim

+0

हाँ - बहिष्कृत। – Vaiden

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