ماسٹر اینڈروئیڈ کے سینسر: ہارڈ ویئر ، سوفٹ ویئر اور کثیر جہتی

مصنف: John Stephens
تخلیق کی تاریخ: 26 جنوری 2021
تازہ کاری کی تاریخ: 4 جولائی 2024
Anonim
ماسٹر اینڈروئیڈ کے سینسر: ہارڈ ویئر ، سوفٹ ویئر اور کثیر جہتی - ایپس
ماسٹر اینڈروئیڈ کے سینسر: ہارڈ ویئر ، سوفٹ ویئر اور کثیر جہتی - ایپس

مواد


آج ، سب سے زیادہ جدید Android آلات سینسر کے ایک گروپ کے ساتھ کٹ آؤٹ ہیں۔

آپ اس معلومات کو بہت سارے طریقوں سے استعمال کرسکتے ہیں - چاہے اس کی روشنی کی سطح کی نگرانی کی جاسکے تاکہ آپ کی درخواست خود بخود اس کی چمک یا رنگ سکیم کو ایڈجسٹ کرسکے۔ صارف کو اپنے موبائل گیم کے ساتھ اشاروں کا استعمال کرتے ہوئے تعامل کرنے کی اجازت دیتا ہے جیسے ان کے آلے کو جھکانا؛ یا جب بھی صارف اپنے آلے کو اپنے کان میں پکڑ لے تو ٹچ واقعات کو خود بخود غیر فعال کرنے کے لئے قربت کے سینسر کا استعمال کریں۔

اس مضمون میں ، ہم تین ایپلیکیشن بنائیں گے جو ہارڈ ویئر اور سوفٹویئر سینسر کی حد سے روشنی ، قربت اور حرکت کا ڈیٹا بازیافت کریں گے۔ ہم اصلی وقت میں ان Android سینسروں کی بھی نگرانی کریں گے ، لہذا آپ کی ایپلی کیشن کو ہمیشہ تازہ ترین معلومات تک رسائی حاصل ہے۔

اس مضمون کے اختتام تک ، آپ کو معلوم ہوگا کہ اینڈروئیڈ سینسر سے ڈیٹا کا ایک ٹکڑا کیسے نکالنا ہے ، اور ایسے سینسروں کو کیسے سنبھالنا ہے جو ملٹی جہتی صف کی شکل میں اپنا ڈیٹا فراہم کرتے ہیں۔

میں کن اینڈرائڈ سینسر استعمال کرسکتا ہوں؟

اینڈرائیڈ سینسرز کو مندرجہ ذیل زمرے میں تقسیم کیا جاسکتا ہے۔


  • ماحولیاتی سینسر یہ ماحولیاتی حالات ، جیسے ہوا کا درجہ حرارت ، دباؤ ، نمی اور ماحول کی روشنی کی سطح کی پیمائش کرتے ہیں۔

  • پوزیشن سینسر اس زمرے میں ایسے سینسر شامل ہیں جو آلہ کی جسمانی پوزیشن کی پیمائش کرتے ہیں ، جیسے قربت کے سینسر اور جیو میگنیٹک فیلڈ سینسر۔
    موشن سینسر یہ سینسر ڈیوائس موشن کی پیمائش کرتے ہیں ، اور اس میں ایکیلرومیٹر ، کشش ثقل سینسر ، گائروسکوپز ، اور گردش ویکٹر سینسر شامل ہیں۔

اس کے علاوہ ، سینسر یا تو ہوسکتے ہیں:

  • ہارڈ ویئر پر مبنی یہ جسمانی اجزاء ہیں جو آلہ میں تشکیل پائے جاتے ہیں اور براہ راست مخصوص خصوصیات کی پیمائش کرتے ہیں ، جیسے سرعت یا ارد گرد کے جغرافیائی شعبوں کی طاقت۔
  • سافٹ ویئر پر مبنی ، جسے کبھی کبھی ورچوئل سینسر یا جامع سینسر کہا جاتا ہے۔ یہ عام طور پر ایک سے زیادہ ہارڈ ویئر پر مبنی سینسروں سے ڈیٹا کوٹلیٹ کرتے ہیں۔ اس مضمون کے آخر کی سمت ، ہم گردش ویکٹر سینسر کے ساتھ کام کر رہے ہیں ، جو ایک سوفٹویئر سینسر ہے جو آلہ کے ایکسلرومیٹر ، میگنیٹومیٹر اور گائروسکوپ سے ڈیٹا کو جوڑتا ہے۔

ماحولیاتی سینسر: محیطی روشنی کی پیمائش

Android کا لائٹ سینسر "لکس" یونٹوں میں محیطی روشنی کی پیمائش کرتا ہے ، جو روشنی کی شدت ہے جس طرح انسانی آنکھوں نے سمجھا ہے۔ سینسر کے ذریعہ اطلاع دی گئی لکس قدر میں تمام آلات مختلف ہوسکتے ہیں ، لہذا اگر آپ کی درخواست میں مستقل قدروں کی ضرورت ہوتی ہے تو آپ کو اپنی درخواست میں خام ڈیٹا کو استعمال کرنے سے پہلے ہیرا پھیری کرنے کی ضرورت پڑسکتی ہے۔


اس سیکشن میں ، ہم ایک ایسی ایپلی کیشن تیار کرنے جارہے ہیں جو آلے کے لائٹ سینسر سے موجودہ لِکس ویلیو کو بازیافت کرے ، اسے ٹیکسٹ ویو میں دکھائے ، اور پھر جب ٹیکسٹ ویو کو اپ ڈیٹ کیا جائے تو نیا ڈیٹا دستیاب ہوجاتا ہے۔اس کے بعد آپ اس معلومات کو اطلاق کی ایک حد میں استعمال کرسکتے ہیں ، مثال کے طور پر آپ مشعل کی ایپلی کیشن تیار کرسکتے ہیں جو لائٹ سینسر سے معلومات کھینچتا ہے اور پھر خود بخود موجودہ روشنی کی سطح کی بنیاد پر اس کی شہتیر کی طاقت کو ایڈجسٹ کرتا ہے۔

اپنی پسند کی ترتیبات کے ساتھ ایک نیا اینڈروئیڈ پروجیکٹ بنائیں ، اور شروع کریں!

اپنے سینسر کا ڈیٹا ڈسپلے کر رہا ہے

میں ایک ٹیکسٹ ویو شامل کرنے جا رہا ہوں جو آخر کار اس ڈیٹا کو ظاہر کرے گا جو ہم نے روشنی سینسر سے نکالا ہے۔ جب بھی نیا ڈیٹا دستیاب ہوگا یہ ٹیکسٹ ویو اپ ڈیٹ ہوگا ، لہذا صارف کو ہمیشہ تازہ ترین معلومات تک رسائی حاصل ہے۔

اپنے پروجیکٹ کی سرگرمی_امین. ایکس ایم ایل فائل کو کھولیں ، اور درج ذیل شامل کریں:

اگلا ، ہمیں "لائٹ سینسر" سٹرنگ ریسورس تیار کرنے کی ضرورت ہے جو ہمارے لے آؤٹ میں درج ہے۔ اپنے پروجیکٹ کی ڈور. xml فائل کھولیں ، اور درج ذیل شامل کریں:

لائٹ سینسر:٪ 1 $ .2f

"٪ 1 $ .2f" ایک پلیس ہولڈر ہے جو ان معلومات کی وضاحت کرتا ہے جو ہم ظاہر کرنا چاہتے ہیں ، اور اسے فارمیٹ کیسے کیا جائے:

  • %1. آپ ایک ہی سٹرنگ ریسورس میں ایک سے زیادہ پلیس ہولڈرز داخل کر سکتے ہیں۔ "٪ 1" اشارہ کرتا ہے کہ ہم ایک ہی پلیس ہولڈر استعمال کر رہے ہیں۔
  • $.2. اس سے یہ واضح ہوتا ہے کہ ہماری اطلاق ہر آنے والی فلوٹنگ پوائنٹ ویلیو کو کس طرح فارمیٹ کرے۔ "$ .2" اشارہ کرتا ہے کہ قدر کو دو اعشاریہ دو جگہ بنانا چاہئے۔
  • ایف قدر کو تیرتے ہوئے نمبر کی شکل میں فارمیٹ کریں۔

اگرچہ کچھ سینسر دوسروں کے مقابلے میں زیادہ عام ہیں ، آپ کو کبھی بھی یہ فرض نہیں کرنا چاہئے کہ ہر آلے کے عین مطابق ہارڈ ویئر اور سافٹ ویئر تک رسائی حاصل ہے۔ سینسر کی دستیابی Android کے مختلف ورژن میں بھی مختلف ہوسکتی ہے ، کیونکہ کچھ سینسر Android پلیٹ فارم کے بعد میں ریلیز ہونے تک متعارف نہیں کروائے جاتے تھے۔

آپ Android سینسر فریم ورک کا استعمال کرتے ہوئے جانچ سکتے ہیں کہ آیا کوئی خاص سینسر کسی آلے پر موجود ہے۔ اس کے بعد آپ سینسر کی دستیابی پر مبنی اپنی درخواست کے کچھ حصوں کو غیر فعال یا اہل کرسکتے ہیں ، یا آپ یہ وضاحت کرتے ہوئے دکھاتے ہیں کہ آپ کی درخواست کی کچھ خصوصیات توقع کے مطابق کام نہیں کرسکتی ہیں۔

اگرچہ ہمارے پاس اپنی سٹرنگ۔ ایکس ایم ایل فائل کھلی ہے ، آئیے ایک "نمبر_اسینسسر" سٹرنگ بنائیں ، جسے لائٹ سینسر دستیاب نہ ہونے کی صورت میں ہم دکھائیں گے۔

لائٹ سینسر دستیاب نہیں ہے

اگر آپ کی ایپلیکیشن کسی خاص سینسر تک رسائی حاصل کیے بغیر صارف کا اچھا تجربہ فراہم نہیں کرسکتی ہے ، تو آپ کو یہ معلومات اپنے منشور میں شامل کرنے کی ضرورت ہے۔ مثال کے طور پر ، اگر آپ کے ایپ کو کمپاس سینسر تک رسائی درکار ہے ، تو آپ مندرجہ ذیل استعمال کرسکتے ہیں۔

اب ، آپ کی ایپ صرف انہی آلات پر ڈاؤن لوڈ کی جاسکتی ہے جن میں کمپاس سینسر موجود ہے۔

اگرچہ یہ آپ کے ناظرین کو محدود کرسکتا ہے ، لیکن یہ اس سے کہیں کم نقصان دہ ہے جب کسی کو آپ کی ایپلی کیشن ڈاؤن لوڈ کرنے کی اجازت دی جائے گارنٹی ان کے آلے کی سینسر کی تشکیل کی وجہ سے ، خراب تجربہ کرنا۔

سینسر کے ساتھ بات چیت کرنا: سینسر مینجر ، سینسر ایونٹس ، اور سامعین

ڈیوائس کے لائٹ سینسر کے ساتھ بات چیت کرنے کے ل you ، آپ کو درج ذیل اقدامات مکمل کرنے کی ضرورت ہے۔

1. سینسر مینجر کی مثال حاصل کریں

سینسر مینجر وہ تمام طریقے مہیا کرتا ہے جن کی آپ کو آلہ کے سینسرز کی پوری حد تک رسائی حاصل کرنے کی ضرورت ہے۔

شروع کرنے کے لئے ، ایک متغیر بنائیں جس میں سینسر مینجر کی مثال موجود ہو:

نجی سینسر مینجر لائٹ سینسر مینجر؛

اس کے بعد ، آپ کو Context.getSystemS خدمتی طریقہ پر کال کرکے اور Context.SENSOR_SERVICE دلیل میں گزر کر ، سینسر مینجر کی مثال حاصل کرنے کی ضرورت ہے۔

لائٹ سینسر مینجر = (سینسر مینجر) گیٹ سسٹم سروس (سیاق و سباق۔ سینسور_سراویس)؛

2. لائٹ ٹیکسٹ ویو کا حوالہ حاصل کریں

اگلا ، ہمیں ایک نجی ممبر متغیر بنانے کی ضرورت ہے جو ہمارے ٹیکسٹ ویو اشیاء کو اپنے پاس رکھیں ، اور اسے ہمارے ٹیکسٹ ویو میں تفویض کریں:

نجی ٹیکسٹ ویو لائٹ ٹیکسٹ ویو؛ ... ... ... لائٹ ٹیکسٹ ویو = (ٹیکسٹ ویو) FindViewById (R.id.lightTextView)؛

3. چیک کریں کہ آیا سینسر موجودہ ڈیوائس پر موجود ہے

آپ getDefaultSensor () طریقہ پر کال کرکے ، اور پھر سینسر کو زیربحث گذر کر کسی مخصوص سینسر تک رسائی حاصل کرسکتے ہیں۔ لائٹ سینسر کیلئے ٹائپ مستقل TYPE_LIGHT ہے ، لہذا ہمیں مندرجہ ذیل استعمال کرنے کی ضرورت ہے۔

لائٹ سینسر = لائٹ سینسر مینج ۔رجیٹ ڈیفالٹ سینسر (سینسر۔ ٹی وائی پی ۔لائٹ)؛

اگر اس ڈیوائس پر سینسر موجود نہیں ہے ، تو پھر getDefaultSensor () کا طریقہ کالعدم ہوجائے گا ، اور ہم "no_sensor" کے تار دکھائیں گے:

سٹرنگ سینسر_آرر = getRes ذرائع (). getString (R.string.no_sensor)؛ اگر (لائٹ سینسر == کیل) {لائٹ ٹیکسٹ ویو.سیٹ ٹیکسٹ (سینسر_اختیار)؛ }

your. اپنے سینسر سامعین کو رجسٹر کریں

جب بھی کسی سینسر میں نیا ڈیٹا ہوتا ہے ، اینڈرائڈ ایک سینسر ایونٹ آبجیکٹ تیار کرتا ہے۔ اس سینسر ایونٹ آبجیکٹ میں سینسر شامل ہوتا ہے جس نے ایونٹ ، ٹائم اسٹیمپ ، اور نئی ڈیٹا ویلیو کو پیدا کیا۔

ابتدائی طور پر ، ہم روشنی اور قربت کے سینسروں پر توجہ مرکوز کریں گے ، جو اعداد و شمار کے ایک ٹکڑے کو واپس کرتے ہیں۔ تاہم ، کچھ سینسرز ہر سینسر ایونٹ کے لئے کثیر جہتی صفیں مہیا کرتے ہیں ، بشمول گردش ویکٹر سینسر ، جس کی ہم اس مضمون کے آخر تک تلاش کریں گے۔

اس بات کو یقینی بنانے کے لئے کہ ہماری درخواست کو ان سینسر ایونٹ آبجیکٹ کے بارے میں مطلع کیا جائے ، ہمیں سینسر مینجر کے رجسٹر لیزنر () کا استعمال کرتے ہوئے سنسر کی اس مخصوص ایونٹ کے لئے سننے والے کو رجسٹر کرنے کی ضرورت ہے۔

رجسٹر لیسٹنر () طریقہ مندرجہ ذیل دلائل لیتا ہے:

  • ایک ایپ یا سرگرمی کا سیاق و سباق۔
  • سینسر کی قسم جس کی آپ نگرانی کرنا چاہتے ہیں۔
  • وہ شرح جس پر سینسر کو نیا ڈیٹا بھیجنا چاہئے۔ ایک اعلی شرح آپ کے اطلاق کو مزید ڈیٹا فراہم کرے گی ، لیکن اس میں نظام کے مزید وسائل خصوصا especially بیٹری کی زندگی کا بھی استعمال ہوگا۔ ڈیوائس کی بیٹری کو محفوظ رکھنے میں مدد کے ل you ، آپ کو کم سے کم ڈیٹا کی درخواست کرنی چاہئے جس کی آپ کی درخواست کی ضرورت ہے۔ میں سینسر مینجج سینسسنس_ڈلی_نورمل استعمال کرنے جارہا ہوں ، جو ہر 200،000 مائیکرو سیکنڈ (0.2 سیکنڈ) میں ایک بار نیا ڈیٹا بھیجتا ہے۔

چونکہ کسی سینسر کو سننے سے آلے کی بیٹری ختم ہوجاتی ہے ، لہذا آپ کو کبھی بھی اپنی درخواست کے آن کریٹ () طریقہ میں سننے والوں کی رجسٹریشن نہیں کرنی چاہئے ، کیونکہ اس سے سینسر ڈیٹا بھیجنا جاری رکھے گا ، یہاں تک کہ جب آپ کی ایپلی کیشن پس منظر میں ہو۔

اس کے بجائے ، آپ اپنے سینسر کو درخواست کے آن اسٹارٹ () لائف سائیکل طریق میں رجسٹر کریں:

@ اووررائڈ محفوظ شدہ باطل آن اسٹارٹ (). super.onStart ()؛ // اگر سینسر موجودہ ڈیوائس پر دستیاب ہے تو .... // اگر (لائٹ سینسر! = منسوخ) {// .......... پھر سننے کو شروع کریں // lightSensorManager.registerListener (یہ ، لائٹ سینسر ، سینسر مینج. سینسور_ڈائلی_نورمل)؛ }

5. سینسر ایونٹ لیسٹنر کال بیکس کو نافذ کریں

سینسر ایونٹ لیسٹنر ایک انٹرفیس ہے جو سینسر مینجر سے اطلاعات وصول کرتا ہے
جب بھی نیا ڈیٹا دستیاب ہوتا ہے ، یا سینسر کی درستگی بدل جاتی ہے۔

سینسر ایونٹ لیسٹنر انٹرفیس کو نافذ کرنے کے لئے پہلا قدم ، ہمارے طبقاتی دستخط میں ترمیم کر رہا ہے:

عوامی طبقے کی مین ایکٹیویٹی میں AppCompatActivity لاگو ہوتا ہے سینسر ایونٹ لسٹنر extend

اس کے بعد ہمیں درج ذیل کال بیک طریقوں کو نافذ کرنے کی ضرورت ہے۔

onSensorChanged ()

اس طریقہ کو ہر نئے سینسر ایونٹ کے جواب میں کہا جاتا ہے۔

سینسر کا ڈیٹا اکثر اوقات تیزی سے تبدیل ہوسکتا ہے ، لہذا آپ کی درخواست مستقل بنیاد پر آن سنسر چینجڈ () طریقہ پر کال کر سکتی ہے۔ اپنی درخواست کو آسانی سے چلانے میں مدد کے ل you ، آپ کو سینسر چینجڈ () طریقہ کار کے تحت زیادہ سے زیادہ کم کام کرنا چاہئے۔

@ سینسر چینجڈ (سینسر ایونٹ سینسر ایونٹ) پر آورائڈ پبلک باطل ہے oid // کرنا // To

onAcuracyChanged ()

اگر سینسر کی درستگی میں بہتری آتی ہے یا گھٹ جاتی ہے تو ، پھر اینڈروئیڈ onAccuracyChanged () طریقہ پر کال کرے گا اور اسے سینسر آبجیکٹ ، جس میں نئی ​​درستگی کی قیمت ہے ، جیسے SENSOR_STATUS_UNRELIABLE یا SENSOR_STATUS_ACCURACY_HIGH کو پاس کرے گا۔

لائٹ سینسر درستگی کی تبدیلیوں کی اطلاع نہیں دیتا ہے ، لہذا میں آن لائن ACuracyChanged () کال بیک کو خالی چھوڑوں گا:

@ آورائڈ پبلک باطل آن اکیورسی چینجڈ (سینسر سینسر ، آئی ٹی آئی) {// کرنا //} To

6. سینسر کی قیمت بازیافت کریں

جب بھی ہمارے پاس کوئی نئی قیمت ہے ، ہمیں onSensorChanged () طریقہ پر کال کرنے کی ضرورت ہے ، اور "لائٹ سینسر" اسٹرنگ کو بازیافت کرنا ہوگا۔ اس کے بعد ہم اسٹرنگ کے پلیس ہولڈر ٹیکسٹ (٪ 1 $ .2f) کو اوور رائڈ کرسکتے ہیں اور اپنے ٹیکسٹ ویو کے حصے کے طور پر تازہ کاری شدہ تار ڈسپلے کرسکتے ہیں۔

@ اوور رائڈ پبلک باطل آن سنسر چینجڈ (سینسر ایونٹ سینسر ایونٹ) {// سینسر کی موجودہ قیمت // فلوٹ کرنٹ ویلیو = سینسر ایونٹ.یوالیوز؛ // "لائٹ_اسینسسر" سٹرنگ کو بازیافت کریں ، نئی قدر داخل کریں اور اسے صارف کو دکھائیں // lightTextView.setText (getRes ذرائع (). getString (R.string.light_sensor، currentValue))؛ }

7. اپنے سننے والوں کو اندراج کروائیں

سینسر بہت کم وقت میں بڑی مقدار میں ڈیٹا تیار کرسکتے ہیں ، لہذا اس آلے کے وسائل کو محفوظ رکھنے میں مدد کے ل you آپ کو اپنے سننے والوں کو مزید اندراج کرنے کی ضرورت ہوگی جب انہیں ضرورت نہیں ہوگی۔

جب آپ کی ایپلی کیشن پس منظر میں ہو تو سینسر کے واقعات کو سننے سے روکنے کے ل your ، اپنے پروجیکٹ کے آن اسٹاپ () لائف سائیکل طریق میں غیر رجسٹرڈ لسٹنر () شامل کریں:

@ اوورائڈ محفوظ شدہ باطل آن اسٹاپ (). super.onShop ()؛ لائٹ سینسر مینیج۔ یونریسٹر لسٹنر (یہ)؛ }

نوٹ کریں کہ آپ کو اپنے سامعوں کو onPause () میں اندراج نہیں کرنا چاہئے ، جیسا کہ اینڈروئیڈ 7.0 میں ہے اور اعلی ایپلی کیشنز اسپلٹ اسکرین اور تصویر میں تصویر موڈ میں چل سکتی ہیں ، جہاں وہ رکے ہوئے حالت میں ہیں ، لیکن اسکرین پر مرئی رہیں۔

Android کے لائٹ سینسرز کا استعمال: مکمل کوڈ

مذکورہ بالا تمام مراحل کو مکمل کرنے کے بعد ، آپ کے پروجیکٹ کی مین ایکٹیویٹی کو کچھ اس طرح نظر آنا چاہئے:

android.support.v7.app.appCompatActivity درآمد کریں۔ android.os.Bundle درآمد کریں۔ android.content.Context درآمد کریں؛ درآمد android.hardware.Sensor؛ درآمد کریں android.hardware.SensorEvent؛ android.hardware.SensorEventListener درآمد کریں؛ android.hardware.SensorManager درآمد کریں؛ درآمد android.widget.TextView؛ عوامی طبقے کی مین ایکٹیویٹی ایپ کامپٹ ایکٹیویٹی میں توسیع کرتی ہے // سینسر ایونٹ لیسٹنر انٹرفیس کو نافذ کرے // سینسر ایونٹ لیسٹنر کو نافذ کرے {// اپنے متغیرات بنائیں // نجی سینسر لائٹ سینسر؛ نجی سینسر مینجر لائٹ سینسر مینجر؛ نجی ٹیکسٹ ویو لائٹ ٹیکسٹ ویو؛ @ اووررائڈ محفوظ باطل آن کریٹیٹ (بنڈل سیفڈ انسٹنس اسٹیٹ) {سوپر ڈاٹ کریٹیٹ (سیفڈ انسٹینس اسٹیٹ)؛ سیٹ کانٹ ویو (R.layout.activity_main)؛ لائٹ ٹیکسٹ ویو = (ٹیکسٹ ویو) FindViewById (R.id.lightTextView)؛ // سینسر مینجر کی مثال حاصل کریں // لائٹ سینسر مینجر = (سینسر مینجر) گیٹ سسٹم سروس (سیاق و سباق) SENSOR_SERVICE)؛ // لائٹ سینسر کی جانچ پڑتال کریں // لائٹ سینسر = لائٹ سینسر مینج. بیج ڈیفالٹ سینسر (سینسر۔ ٹی وائی پی۔ ایل ایل ٹی)؛ // اگر لائٹ سینسر موجود نہیں ہے تو ، پھر ایک خامی دکھائیں // اسٹرنگ سینسر_آرر = getRes ذرائع (). getString (R.string.no_enseor)؛ اگر (لائٹ سینسر == کیل) {لائٹ ٹیکسٹ ویو.سیٹ ٹیکسٹ (سینسر_اختیار)؛ St} @ اووررائڈ محفوظ شدہ باطل آن اسٹارٹ () {super.onStart ()؛ // اگر سینسر موجودہ ڈیوائس پر دستیاب ہے تو .... // اگر (لائٹ سینسر! = منسوخ) {//….پھر ایک سننے والے کو رجسٹر کریں // لائٹ سینسر مینج ۔ریگسٹر لیسٹنر (یہ ، لائٹ سینسر ، // بتائیں کہ آپ کتنی بار چاہتے ہیں نیا اعداد و شمار وصول کریں // سینسر مینج. سینسور_ڈالئ_نورمل)؛ top} @ اووررائڈ محفوظ شدہ باطل آن اسٹاپ () {super.onStop ()؛ // اپنے سننے والوں کو اندراج کروائیں // lightSensorManager.unregisterListener (this)؛ ens @ سینسر چینجڈ (سینسر ایونٹ سینسر ایونٹ) کے اوور رائیڈ پبلک باطل {// سینسر کی موجودہ قیمت // فلوٹ کرنٹ ویلیو = سینسر ایونٹ.یویلیوز؛ // "لائٹ_اسینسسر" سٹرنگ کو بازیافت کریں ، نئی ویلیو داخل کریں اور ٹیکسٹ ویو // لائٹ ٹیکسٹ ویو.سیٹ ٹیکسٹ (گیٹ ریسورسز) کو اپ ڈیٹ کریں۔ گیٹ اسٹریننگ (R.string.light_sensor ، کرنٹ ویل))؛ } @ اووررائڈ // اگر سینسر کی درستگی تبدیل ہوجائے تو… .اختیار باطل onAccuracyChanged (سینسر سینسر ، انٹ i) {// کرنا //} TO

اپنے مکمل کردہ Android سینسر ایپ کی جانچ کریں

جسمانی اینڈرائڈ اسمارٹ فون یا ٹیبلٹ پر اس ایپلی کیشن کی جانچ کرنے کے لئے:

  • اپنے آلہ پر پروجیکٹ انسٹال کریں (اینڈروئیڈ اسٹوڈیو ٹول بار سے "چلائیں> چلائیں" کو منتخب کرکے)۔
  • اگرچہ یہ آلات کے درمیان مختلف ہوتا ہے ، لیکن روشنی کا سینسر اکثر اسکرین کے اوپری دائیں حصے میں ہوتا ہے۔ روشنی کی سطح میں ہیرا پھیری کرنے کے ل your ، اپنے آلے کو قریب منتقل کریں ، اور پھر روشنی کے منبع سے کچھ دور کریں۔ متبادل کے طور پر ، آپ روشنی کو روکنے کے ل your ، اپنے ہاتھ سے ڈیوائس کو ڈھکنے کی کوشش کرسکتے ہیں۔ دستیاب روشنی کی مقدار پر منحصر ہے ، "لائٹ سینسر" کی قیمت میں اضافہ اور کمی آنی چاہئے۔

اگر آپ اینڈروئیڈ ورچوئل ڈیوائس (اے وی ڈی) استعمال کررہے ہیں ، تو ایمولیٹر میں ورچوئل سینسر کنٹرولز کا ایک سیٹ ہے جسے استعمال کرکے آپ مختلف سینسر واقعات کی نقالی کر سکتے ہیں۔ آپ ان مجازی سینسر کنٹرولوں تک ، ایمولیٹر کے "توسیعی کنٹرول" ونڈو کے ذریعے رسائی حاصل کرتے ہیں۔

  • درخواست کو اپنے اے وی ڈی پر انسٹال کریں۔
  • اے وی ڈی کے ساتھ ساتھ ، آپ کو بٹنوں کی ایک پٹی نظر آئے گی۔ تین نقطوں والا "مزید" بٹن ڈھونڈیں (جہاں مندرجہ ذیل اسکرین شاٹ میں کرسر لگا ہوا ہے) اور اس پر کلک کریں۔ اس نے "توسیعی کنٹرول" ونڈو کا آغاز کیا۔

  • بائیں ہاتھ والے مینو میں ، "ورچوئل سینسر" منتخب کریں۔
  • "اضافی سینسر" ٹیب کو منتخب کریں۔ اس ٹیب میں مختلف سلائیڈرز ہیں جن کا استعمال آپ مختلف پوزیشن اور ماحولیاتی سینسر کے واقعات کو نقل کرنے کے لئے کر سکتے ہیں۔

  • مصنوعی روشنی کی سطح کو تبدیل کرنے کے لئے "لائٹ (لکس)" سلائیڈر ڈھونڈیں اور اسے بائیں اور دائیں کھینچیں۔ آپ کی ایپلیکیشن کو بدلنے والی اقدار کو حقیقی وقت پر ظاہر کرنا چاہئے۔

آپ مکمل پروجیکٹ کو گٹ ہب سے ڈاؤن لوڈ کرسکتے ہیں۔

Android کے قربت کے سینسر کے ساتھ فاصلے کی پیمائش

اب ہم نے دیکھا ہے کہ ماحولیاتی سینسر سے معلومات کو کیسے بازیافت کیا جا، ، آئیے دیکھیں کہ آپ اس علم کو کس طرح استعمال کرتے ہیں پوزیشن سینسر

اس سیکشن میں ، ہم آپ کے اسمارٹ فون یا ٹیبلٹ اور دیگر اشیاء کے مابین فاصلے کی نگرانی کے لئے آلہ کا قربت سینسر استعمال کریں گے۔ اگر آپ کی درخواست میں کسی بھی طرح کی آواز کی فعالیت ہے تو ، پھر قربت کا سینسر آپ کو یہ طے کرنے میں مدد کرسکتا ہے کہ اسمارٹ فون صارف کے کان پر کب پکڑا جاتا ہے ، مثال کے طور پر جب وہ ٹیلیفون پر گفتگو کرتے ہیں۔ اس کے بعد آپ ٹچ واقعات کو غیر فعال کرنے کے لئے اس معلومات کا استعمال کرسکتے ہیں ، لہذا صارف غلطی سے پھانسی نہیں دیتا ، یا دوسرے ناپسندیدہ واقعات کو وسط گفتگو میں محرک نہیں کرتا ہے۔

یوزر انٹرفیس کی تشکیل

میں اسکرین کے قربت کا ڈیٹا ڈسپلے کرنے جارہا ہوں ، تاکہ آپ اسے حقیقی وقت پر اپ ڈیٹ کرتے ہوئے دیکھ سکیں۔ چیزوں کو آسان رکھنے میں مدد کرنے کے لئے ، آئیے اپنے سابقہ ​​اطلاق سے لے آؤٹ کا زیادہ استعمال کریں:

اگلا ، اپنی ڈور. xml فائل کھولیں اور ایک "قربت_احترام" اسٹرنگ تشکیل دیں۔ ایک بار پھر ، اس تار میں ایک پلیس ہولڈر رکھنے کی ضرورت ہے ، جو آخر کار قربت کے سینسر سے نکالے گئے ڈیٹا کے ذریعہ آباد ہوجائے گی:

قربت سینسر قربت سینسر:٪ 1 $ .2f قربت کا کوئی سینسر دستیاب نہیں ہے

قربت کے سینسر سے ڈیٹا حاصل کرنا

لائٹ سینسر کی طرح ، اینڈروئیڈ کا قربت سینسر بھی ایک واحد ڈیٹا ویلیو واپس کرتا ہے ، جس کا مطلب ہے کہ ہم اپنے سابقہ ​​اطلاق سے کوڈ کا زیادہ حصہ دوبارہ استعمال کرسکتے ہیں۔ تاہم ، کچھ بڑے اختلافات ہیں ، نیز کچھ نام سے متعلق تبدیلیاں جو اس کوڈ پر عمل کرنا آسان بناتی ہیں۔

  • سینسر مینجر کی ایک مثال بنائیں ، جس کا اس بار میں "قربت سینسر مینجر" کا نام لے رہا ہوں۔
  • "قربت سینسر مینجر" کی مثال حاصل کریں۔
  • "قربت ٹیکٹ ویو" کا حوالہ بنائیں۔
  • getDefaultSensor () طریقہ پر کال کریں ، اور اسے TYPE_PROXIMITY سینسر پاس کریں۔
  • قربت سینسر کے ل listen سامعین کا اندراج اور اندراج کروائیں۔

ان اندازوں کو کرنے کے بعد ، آپ کو مندرجہ ذیل چیزوں کو ختم کرنا چاہئے۔

android.support.v7.app.appCompatActivity درآمد کریں۔ android.os.Bundle درآمد کریں۔ android.content.Context درآمد کریں؛ درآمد android.hardware.Sensor؛ درآمد کریں android.hardware.SensorEvent؛ android.hardware.SensorManager درآمد کریں؛ android.hardware.SensorEventListener درآمد کریں؛ درآمد android.widget.TextView؛ عوامی طبقے کی مین ایکٹیویٹی نے AppCompatActivity کو بڑھایا ہے // سینسر ایونٹ لیسٹنر انٹرفیس کو نافذ کریں // سینسر ایونٹ لیسٹنر کو نافذ کریں {// اپنے متغیرات بنائیں // نجی سینسر قربت سینسر؛ نجی سینسر مینجر قربت سینسر مینجر؛ نجی ٹیکسٹ ویو قربت ٹیکسٹ ویو؛ @ اووررائڈ محفوظ باطل آن کریٹیٹ (بنڈل سیفڈ انسٹنس اسٹیٹ) {سوپر ڈاٹ کریٹیٹ (سیفڈ انسٹینس اسٹیٹ)؛ سیٹ کانٹ ویو (R.layout.activity_main)؛ proximityTextView = (TextView) FindViewById (R.id.proximityTextView)؛ // سینسر مینجر // قربت سینسر مینجر = (سینسر مینجر) حاصل سسٹم سروس (سیاق و سباق) سینسرسینجرس کی مثال حاصل کریں؛ // قربت کے سینسر کی جانچ پڑتال کریں // قربت سینسر = قربت سینسر_مینج ۔رج ڈیفالٹ سینسر (سینسر۔ ٹی وائی پی ۔پی پروکسٹی)؛ // اگر قربت کا سینسر موجود نہیں ہے تو ، پھر ایک خامی دکھائیں // اسٹرنگ سینسر_ریر = getRes स्त्रोत (). getString (R.string.no_enseor)؛ اگر (proximitySensor == null) {proximityTextView.setText (sensor_error)؛ St} @ اووررائڈ محفوظ شدہ باطل آن اسٹارٹ () {super.onStart ()؛ // اگر سینسر موجودہ ڈیوائس پر دستیاب ہے ... // اگر (قربت سینسر! = منسوخ) {//….پھر ایک سننے والے کو رجسٹر کریں // قربت سینسر مینجریجریجسٹر لیسٹنر (یہ ، قربت سینسر ، // بتائیں کہ آپ کتنی بار چاہتے ہیں نیا اعداد و شمار وصول کریں // سینسر مینج. سینسور_ڈالئ_نورمل)؛ top} @ اووررائڈ محفوظ شدہ باطل آن اسٹاپ () {super.onStop ()؛ // سسٹم کے وسائل کو محفوظ رکھنے کے ل your اپنے سننے والوں کی اندراج کروائیں // قربت کے بارے میں سینسر مینج. یونریسٹر لسٹنر (یہ)؛ ens @ سینسر چینجڈ (سینسر ایونٹ سینسر ایونٹ) کے اوور رائیڈ پبلک باطل {// سینسر کی موجودہ قیمت // فلوٹ کرنٹ ویلیو = سینسر ایونٹ.یویلیوز؛ // "قربت_احترام" سٹرنگ کو بازیافت کریں ، نئی قدر داخل کریں اور ٹیکسٹ ویو // پراکسیٹی ٹکسٹ ویو.سیٹ ٹیکسٹ (گیٹ ریسورسز) کو اپ ڈیٹ کریں۔ getString (R.string.proximity_enseor، currentValue))؛ } @ اووررائڈ // اگر سینسر کی درستگی تبدیل ہوجائے تو… .اختیار باطل onAccuracyChanged (سینسر سینسر ، انٹ i) {//...TO do //}}

جانچ: صارف ان کے آلے سے کتنا قریب ہے؟

اس ایپلی کیشن کو کسی جسمانی اینڈرائڈ اسمارٹ فون یا ٹیبلٹ پر آزمانے کے ل your ، اپنے آلے پر اس ایپلی کیشن کو انسٹال کریں اور پھر اپنے ہاتھ کو اسکرین کی طرف بڑھاتے ہوئے تجربہ کریں ، اور پھر اسے دوبارہ دور منتقل کریں۔ "قربت کا سینسر" قدر آپ کی حرکات کو ریکارڈ کرے۔

بس اتنا آگاہ رہیں کہ قربت کے سینسر آلات کے مابین مختلف ہو سکتے ہیں۔ کچھ آلات صرف دو قریبی قدریں ظاہر کرسکتے ہیں - ایک کو "قریب" اور ایک "دور" کی نشاندہی کرنے کے ل - - لہذا اگر آپ کو اپنے جسمانی لوڈ ، اتارنا Android آلہ پر زیادہ مختلف چیزیں نظر نہیں آتی ہیں تو حیران نہ ہوں۔

ایمولیٹر پر اس درخواست کی جانچ کرنے کے لئے:

  • اے وی ڈی پر اپنی درخواست انسٹال کریں۔
  • تین نقطوں والا "مزید" بٹن تلاش کریں اور اس پر کلک کریں ، جس سے "توسیعی کنٹرول" ونڈو کا آغاز ہوتا ہے۔
  • ونڈو کے بائیں ہاتھ والے مینو میں ، "ورچوئل سینسر" منتخب کریں۔
  • "اضافی سینسر" ٹیب کو منتخب کریں۔
  • "قربت" سلائیڈر ڈھونڈیں ، اور آلے کے قریب جانے والی کسی چیز کو نقل کرنے کے ل left اس کو بائیں اور دائیں گھسیٹیں ، اور پھر آگے بھی۔ جیسے ہی آپ سلائیڈر میں ہیرا پھیری کرتے ہیں تو ، "قربت کے سینسر" کی اقدار کو بدلنا چاہئے۔

آپ مکمل پروجیکٹ کو گٹ ہب سے ڈاؤن لوڈ کرسکتے ہیں۔

موشن سینسر: کثیر جہتی صفوں پر کارروائی ہو رہی ہے

اس مقام تک ، ہم نے ان سینسروں پر توجہ مرکوز رکھی ہے جو اعداد و شمار کی ایک ہی شے کی فراہمی کرتے ہیں ، لیکن کچھ ایسے سینسر موجود ہیں جو ہر سینسر ایونٹ کے لئے کثیر جہتی اشارے فراہم کرتے ہیں۔ ان کثیر جہتی سینسروں میں حرکت سینسر شامل ہیں ، جس پر ہم اس آخری حصے میں توجہ مرکوز کریں گے۔

موشن سینسر آپ کی مدد کرسکتے ہیں:

  • صارف کے ان پٹ کا متبادل طریقہ فراہم کریں۔ مثال کے طور پر ، اگر آپ موبائل گیم تیار کررہے ہیں تو پھر صارف اپنے آلے کو ٹیلٹ کر کے ان کے کردار کو اسکرین کے گرد گھوم سکتا ہے۔
  • صارف کی سرگرمی کو دریافت کریں۔ اگر آپ نے سرگرمی سے باخبر رہنے والی ایپ بنائی ہے تو موشن سینسر آپ کو یہ معلوم کرنے میں مدد کرسکتے ہیں کہ آیا صارف کار میں سفر کررہا ہے ، جاگنگ کر رہا ہے ، یا ان کی میز پر بیٹھا ہے۔
  • واقفیت کا زیادہ درست طریقے سے تعین کریں۔آلے کے موجودہ محو وقوع کے بارے میں انتہائی درست بصیرت حاصل کرنے کے لئے ، کسی آلہ کی حرکتی سینسروں سے کوآرڈینیٹ نکالنا اور پھر زمین کے کوارڈینیٹ سسٹم کی بنیاد پر ان کا ترجمہ کرنا ممکن ہے۔

اس آخری حصے میں ، ہم گردش ویکٹر سینسر (TYPE_ROTATION_VECTOR) استعمال کریں گے۔ لائٹ اور قربت کے سینسروں کے برخلاف ، یہ ایک سافٹ ویئر سینسر ہے جو آلہ کے ایکسلریومیٹر ، میگنیٹومیٹر اور گائروسکوپ سینسر سے ڈیٹا کی مدد کرتا ہے۔ اگرچہ اس سینسر کے ساتھ کام کرنے میں اکثر آپ کو ریاضی کی تبدیلیوں اور تبدیلیوں کو انجام دینے کی ضرورت ہوتی ہے ، لیکن اس سے آپ کو آلے کے بارے میں انتہائی درست معلومات کی فراہمی بھی ہوسکتی ہے۔

ہم ایک ایسی ایپلی کیشن تیار کریں گے جو پیمائش کے لئے گھماؤ ویکٹر سینسر کا استعمال کرے:

  • پچ یہ آلہ کا اوپر سے نیچے کا جھکاؤ ہے۔
  • رول یہ آلہ کا بائیں سے دائیں جھکاؤ ہے۔

ریئل ٹائم پچ اور رول ڈیٹا کی نمائش

چونکہ ہم دو میٹرکس کی پیمائش کر رہے ہیں ، لہذا ہمیں دو ٹیکسٹ ویوز اور دو اسی طرح کے سٹرنگ ریسورس تیار کرنے کی ضرورت ہے۔

سٹرنگ xx فائل کو کھولیں ، اور درج ذیل شامل کریں:

موشن سینسرز پچ سینسر:٪ 1 $ .2f رول سینسر:٪ 1 $ .2f موشن سینسر دستیاب نہیں ہے

اپنی ایپ میں گردش ویکٹر سینسر کا استعمال کرتے ہوئے

ہم اپنے سابقہ ​​ایپلی کیشنز کے کوڈ میں سے کچھ کو دوبارہ استعمال کریں گے ، لہذا آئیے ان علاقوں پر مرکوز کریں جہاں گردش ویکٹر سینسر سے بات چیت کی جارہی ہے ، جو ہم پہلے دیکھ چکے ہیں اس سے کافی مختلف ہے۔

1. TYPE_ROTATION_VECTOR استعمال کریں

چونکہ ہم گردش ویکٹر سینسر کے ساتھ کام کر رہے ہیں ، لہذا ہمیں getDefaultSensor () طریقہ پر کال کرنے کی ضرورت ہے ، اور پھر اسے TYPE_ROTATION_VECTOR تسلسل سے گزرنا ہوگا:

پوزیشن سینسر مینج ڈاٹ بیج ڈیفالٹ سینسر (سینسر۔ ٹی وائی پی ٹریوٹیشن_وییکٹر)؛

2. سینسر ڈیٹا کا ترجمہ کریں

پچھلے لائٹ اور قربت کے سینسروں کے برعکس ، موشن سینسر ہر سینسر ایونٹ کے ل sens سینسر اقدار کی کثیر جہتی صفوں کو لوٹاتے ہیں۔ ان اقدار کو معیاری "X ، Y ، Z" کوآرڈینیٹ سسٹم کا استعمال کرتے ہوئے فارمیٹ کیا جاتا ہے ، جس کا حساب اس آلے کے نسبت سے کیا جاتا ہے جب اس کے ڈیفالٹ ، "قدرتی" واقفیت میں ہوتا ہے۔

اینڈروئیڈ آلہ کی موجودہ واقفیت سے ملنے کے لئے ان X ، Y اور Z کے نقاط کو تبدیل نہیں کرتا ہے ، لہذا "X" محور ایک ہی رہے گا اس سے قطع نظر کہ ڈیوائس پورٹریٹ ہے یا زمین کی تزئین کی وضع میں ہے۔ گردش ویکٹر سینسر کا استعمال کرتے وقت ، آپ کو آلے کی موجودہ گردش سے ملنے کے ل inc آنے والے ڈیٹا کو تبدیل کرنے کی ضرورت پڑسکتی ہے۔

زیادہ تر اسمارٹ فونز کے لئے پورٹریٹ ڈیفالٹ واقفیت ہے ، لیکن آپ کو یہ خیال نہیں کرنا چاہئے کہ ایسا ہی ہو گا۔ سب Android آلات ، خاص طور پر گولیاں۔ اس آرٹیکل میں ، ہم سینسر کے ڈیٹا کو اس کے اصل سے ترجمہ کرنے کے لئے ایک روٹیشن میٹرکس استعمال کریں گے ، آلہ مربوط نظام ، کرنے کے لئے زمین کی کوآرڈینیٹ سسٹم ، جو زمین کے مقابلے میں آلہ کی حرکت اور مقام کی نمائندگی کرتا ہے۔ اگر ضرورت ہو تو ، ہم اس کے بعد آلے کی موجودہ واقفیت کی بنیاد پر ، سینسر کے ڈیٹا کو دوبارہ تشکیل دے سکتے ہیں۔

سب سے پہلے ، ڈیوائس کوآرڈینیٹ سسٹم ایک معیاری 3 محور X ، Y ، Z کوآرڈینیٹ سسٹم ہے ، جہاں تین محوروں میں سے ہر ایک نقطہ کی نمائندگی 3D ویکٹر کے ذریعہ کی جاتی ہے۔ اس کا مطلب ہے کہ ہمیں 9 فلوٹ قدروں کی ایک صف تیار کرنے کی ضرورت ہے۔

فلوٹ روٹیشنمیٹریکس = نیا فلوٹ؛

اس کے بعد ہم getRotationMatrix () طریقہ پر اس صف کو منتقل کرسکتے ہیں۔

سینسر مینج ۔ریٹ روٹیشن میٹریکس فریوم ویکٹر (روٹیشن میٹریکس ، ویکٹر)؛ int worldAxisX = SensorManager.AXIS_X؛ int worldAxisZ = SensorManager.AXIS_Z؛

اگلے مرحلے میں ، سینسر کے اعداد و شمار کی دوبارہ تشکیل کے ل S سینسر مینجس۔ریماپ کوارڈینیٹ سسٹم () کا طریقہ استعمال کیا جارہا ہے ، جو آلہ کی موجودہ واقفیت کی بنیاد پر ہے۔

سینسر مینج ریئر میپ کوآرڈینیٹ سسٹم () کا طریقہ مندرجہ ذیل دلائل لیتا ہے:

  • اصل گردش میٹرکس۔
  • وہ محور جن کو آپ دوبارہ تشکیل دینا چاہتے ہیں۔
  • وہ صف جو آپ اس نئے ڈیٹا سے آباد کر رہے ہیں۔

میں اپنی ایپ میں کوڈ استعمال کروں گا:

فلوٹ ایڈجسٹRotationMatrix = نیا فلوٹ؛ سینسر مینج ۔ریریپ کوآرڈینیٹ سسٹم (روٹیشن میٹریکس ، ورلڈ ایکسیس ایکس ، ورلڈ ایکسس زیڈ ، ایڈجسٹڈ روٹیشن میٹریکس)؛

آخر میں ، ہم SensorManager.getOrientation کال کریں گے اور ایڈجسٹریٹومیشن میٹرکس کو استعمال کرنے کے لئے بتائیں گے:

سینسر مینج۔ بیج اورینٹیشن (ایڈجسٹ روٹیشن میٹریکس ، واقفیت)؛

3. پلیس ہولڈر کے تاروں کو اپ ڈیٹ کریں

چونکہ ہمارے پاس اعداد و شمار کے دو سیٹ ہیں (پچ اور رول) ، لہذا ہمیں دو الگ الگ پلیس ہولڈر کے تاروں کو بازیافت کرنے ، انہیں صحیح قدروں کے ساتھ آباد کرنے کی ضرورت ہے ، اور پھر اس سے متعلقہ ٹیکسٹ ویو کو اپ ڈیٹ کریں:

پچ ٹیکسٹ ویو.سیٹ ٹیکسٹ (گیٹ ریسورسز (). گیٹ اسٹریننگ (آر. اسٹرنگ.پیچ_اسینسیر، پچ))؛ رولٹیکسٹ ویو.سیٹ ٹیکسٹ (گیٹ ریسورسز (). گیٹ اسٹریننگ (آر. سٹرنگ ڈاٹ رول_حصور، رول))؛

ایک سے زیادہ سینسر ڈیٹا کی نمائش: مکمل کوڈ

مندرجہ بالا اقدامات انجام دینے کے بعد ، آپ کی مین ایکٹیویٹی کو کچھ اس طرح نظر آنا چاہئے:

android.app.Activity درآمد کریں۔ android.os.Bundle درآمد کریں۔ درآمد android.hardware.Sensor؛ درآمد کریں android.hardware.SensorEvent؛ android.hardware.SensorEventListener درآمد کریں؛ android.hardware.SensorManager درآمد کریں؛ درآمد android.widget.TextView؛ عوامی طبقے کی مین ایکٹیویٹی میں سرگرمی کا اطلاق سینسر ایونٹ لیسٹنر {نجی سینسر مینجر موشن سینسر مینجر؛ نجی سینسر تحریک سینسر؛ نجی ٹیکسٹ ویو پٹ ٹیکسٹ ویو؛ نجی ٹیکسٹ ویو رول ٹیکسٹ ویو؛ نجی جامد حتمی شکل SENSOR_DELAY = 500 * 1000؛ نجی جامد فائنل INF FROM_RADS_TO_DEGS = -57؛ @ اووررائڈ محفوظ باطل آن کریٹیٹ (بنڈل سیفڈ انسٹنس اسٹیٹ) {سوپر ڈاٹ کریٹیٹ (سیفڈ انسٹینس اسٹیٹ)؛ سیٹ کانٹ ویو (R.layout.activity_main)؛ پچ ٹیکسٹ ویو = (ٹیکسٹ ویو) FindViewById (R.id.pitchTextView)؛ رول ٹیکسٹ ویو = (ٹیکسٹ ویو) FindViewById (R.id.rolTextView)؛ کوشش کریں {موشن سینسر مینجر = (سینسر مینجر) گٹ سسٹم سروس (سرگرمی.سینسور_ سرور)؛ موشن سینسر = موشن سینسر مینج۔رجٹ ڈیفالٹ سینسر (سینسر۔ TYPE_ROTATION_VECTOR)؛ موشن سینسر مینج ۔ریگسٹر لیسٹنر (یہ ، موشن سینسر ، SENSOR_DELAY)؛ } کیچ (رعایت ای) itch پچٹیکسٹ ویو.سیٹ ٹیکسٹ (R.string.no_sensor)؛ رول ٹیکسٹ ویو.سیٹ ٹیکسٹ (R.string.no_sensor)؛ cc}Avride پبلک باطل onAccuracyChanged (سینسر سینسر ، int درستگی) do // کرنا // To @ Oensride پبلک باطل آن سنسر چینجڈ (سینسر ایونٹ ایونٹ) {اگر (ایونٹ. }} نجی باطل اپ ڈیٹ (فلوٹ ویکٹر) {// گردش میٹرکس کی گنتی کریں // فلوٹ روٹیشن میٹریکس = نیا فلوٹ؛ سینسر مینج ۔ریٹ روٹیشن میٹریکس فریوم ویکٹر (روٹیشن میٹریکس ، ویکٹر)؛ int worldAxisX = SensorManager.AXIS_X؛ int worldAxisZ = SensorManager.AXIS_Z؛ // سرگرمی کی موجودہ واقفیت کی بنیاد پر میٹرکس کو دوبارہ ترتیب دیں // فلوٹ ایڈجسٹڈروٹیشن میٹریکس = نیا فلوٹ؛ سینسر مینج ۔ریریپ کوآرڈینیٹ سسٹم (روٹیشن میٹریکس ، ورلڈ ایکسیس ایکس ، ورلڈ ایکسس زیڈ ، ایڈجسٹڈ روٹیشن میٹریکس)؛ // ڈیوائسز واقفیت کا حساب لگائیں // فلوٹ واقفیت = نیا فلوٹ؛ // getOrientation () کے طریقہ کار کو فلوٹ قدروں کی صف کی فراہمی // سینسر مینج ۔ریگیٹ اورینٹیشن (ایڈجسٹ روٹیشن میٹریکس ، واقفیت)؛ فلوٹ پچ = واقفیت * FROM_RADS_TO_DEGS؛ فلوٹ رول = واقفیت * FROM_RADS_TO_DEGS؛ // پچ اور رول ویلیوز کے ساتھ ٹیکسٹ ویوز کو اپ ڈیٹ کریں // pitchTextView.setText (getResources (). getString (R.string.pitch_sensor، پچ))؛ رولٹیکسٹ ویو.سیٹ ٹیکسٹ (گیٹ ریسورسز (). گیٹ اسٹریننگ (آر. سٹرنگ ڈاٹ رول_حصور، رول))؛ }

آپ مکمل پروجیکٹ کو گٹ ہب سے ڈاؤن لوڈ کرسکتے ہیں۔

ہمارے آخری Android سینسر ایپلی کیشن کی جانچ ہو رہی ہے

جسمانی اینڈروئیڈ اسمارٹ فون یا ٹیبلٹ پر اس گردش ویکٹر اینڈروئیڈ سینسر ایپ کی جانچ کرنے کے لئے:

  • اپنے آلے پر ایپلی کیشن انسٹال کریں۔
  • اپنے اسمارٹ فون یا گولی کو کسی چپٹی سطح پر رکھیں۔ نوٹ کریں کہ موشن سینسر انتہائی حساس ہوتے ہیں ، لہذا کسی بظاہر حرکت پذیر آلے کے لئے پچ اور رول قدروں میں اتار چڑھاو کی اطلاع دینا غیر معمولی بات نہیں ہے۔
  • پچ کو جانچنے کے ل your ، اپنے آلے کے نیچے کو اٹھائیں تاکہ یہ آپ سے دور ہو جائے۔ پچ کی قدر ڈرامائی انداز میں بدلنی چاہئے۔
  • رول کو جانچنے کے ل your ، اپنے آلے کے بائیں طرف اٹھانے کی کوشش کریں ، لہذا یہ بائیں طرف جھکا ہوا ہے - اس رول ویلیو پر نگاہ رکھیں!

اگر آپ کسی ایمولیٹر پر اپنے منصوبے کی جانچ کررہے ہیں:

  • درخواست کو اپنے اے وی ڈی پر انسٹال کریں۔
  • "توسیع شدہ کنٹرول" ونڈو کا آغاز کرنے والے "مزید" کو منتخب کریں۔
  • بائیں ہاتھ والے مینو میں ، "ورچوئل سینسر" منتخب کریں۔
  • اس بات کو یقینی بنائیں کہ "ایکسلرومیٹر" ٹیب منتخب ہوا ہے۔ اس ٹیب میں ایسے کنٹرولز شامل ہیں جو آلہ کی پوزیشن اور واقفیت میں تبدیلیوں کی تقلید کرسکتے ہیں۔
  • مختلف سلائیڈرز (گھماؤ: Z-Rot، X-Rot، Y-Rot؛ اور اقدام: X، Y، اور Z) اور مختلف "ڈیوائس روٹیشن" بٹنوں کے ساتھ تجربہ کرنے کی کوشش کریں تاکہ یہ معلوم ہو سکے کہ وہ آپ کی درخواست کے "رول سینسر کو کیسے متاثر کرتے ہیں۔ "اور" پچ سینسر "اقدار۔

ختم کرو

اس مضمون میں ، ہم نے دیکھا کہ اینڈروئیڈ سینسر کی تین اہم اقسام: ڈیٹا کو بازیافت کرنے کا طریقہ: ماحولیاتی ، پوزیشن اور حرکت ، اور اس ڈیٹا کو حقیقی وقت میں کیسے نگرانی کرنا ہے۔

کیا آپ نے کوئی ایسی Android ایپس دیکھی ہیں جو سینسر کو دلچسپ یا انوکھے طریقوں سے استعمال کرتی ہیں؟ ہمیں ذیل میں تبصرے میں بتائیں!

اے آر کوور 1.5 کے ایک ایپ ٹیراؤنڈ میں ، کوئی آسانی سے بغیر پلے ہوئے اسمارٹ فونز کے حوالوں کو دیکھ سکتا ہے جیسے ون پلس 6 ٹی۔ایسا معلوم ہوتا ہے کہ یہ فونز پہلے ہی ARCore کی حمایت کے لئے منظور شدہ ہیں۔عا...

بدنیتی ہیکرز دن بدن بے شمار ہوتے جارہے ہیں ، اور کمپنیاں اس خطرے سے نمٹنے کے لئے جدوجہد کر رہی ہیں. اس سال کے شروع میں ہی ، فیس بک کو ایک بڑے پیمانے پر ڈیٹا کی خلاف ورزی کا سامنا کرنا پڑا ، جس نے ویب ...

ہم آپ کو پڑھنے کے لئے مشورہ دیتے ہیں