অ্যান্ড্রয়েড ডিভাইসে ম্যাগনেটিক ফিল্ড সেন্সর সাপোর্ট যাচাই
এই টিউটোরিয়ালে শিখব কিভাবে জিওম্যাগনেটিক ফিল্ড সেন্সর (ম্যাগনেটোমিটার) ডিভাইসে উপলব্ধ কিনা তা যাচাই করতে হয়। এটি কম্পাস এবং নেভিগেশন অ্যাপের জন্য অপরিহার্য।
প্রয়োজনীয় ধাপসমূহ
ধাপ ১: নতুন প্রজেক্ট তৈরি করুন
Android Studio-তে File → New Project নির্বাচন করে প্রজেক্ট তৈরি করুন।
ধাপ ২: লেআউট ফাইল
res/layout/activity_main.xml ফাইলে:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="https://schemas.android.com/apk/res/android"
xmlns:app="https://schemas.android.com/apk/res-auto"
xmlns:tools="https://schemas.android.com/tools"
android:layout_width="match_parent"
android:gravity="center"
android:layout_height="match_parent"
tools:context=".MainActivity"
android:orientation="vertical">
<TextView
android:id="@+id/actionEvent"
android:textSize="40sp"
android:layout_marginTop="30dp"
android:layout_width="wrap_content"
android:layout_height="match_parent" />
</LinearLayout>
ধাপ ৩: জাভা কোড
src/MainActivity.java ফাইলে:
package com.example.myapplication;
import android.content.Context;
import android.hardware.Sensor;
import android.hardware.SensorManager;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
private SensorManager sensorManager;
TextView actionEvent;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
actionEvent = findViewById(R.id.actionEvent);
sensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
// ম্যাগনেটিক ফিল্ড সেন্সর যাচাই
Sensor magneticSensor = sensorManager.getDefaultSensor(Sensor.TYPE_MAGNETIC_FIELD);
if (magneticSensor != null) {
actionEvent.setText("✓ ম্যাগনেটিক ফিল্ড সেন্সর সমর্থিত\n" +
"নাম: " + magneticSensor.getName() + "\n" +
"বেন্ডর: " + magneticSensor.getVendor() + "\n" +
"ভার্সন: " + magneticSensor.getVersion() + "\n" +
"পাওয়ার: " + magneticSensor.getPower() + " mA\n" +
"রেজোলিউশন: " + magneticSensor.getResolution() + " μT");
} else {
actionEvent.setText("✗ ম্যাগনেটিক ফিল্ড সেন্সর সমর্থিত নয়");
}
}
}
সেন্সর বিস্তারিত তথ্য পাওয়া
উপরের কোডে সেন্সরের মেটাডেটা (নাম, ভেন্ডর, ভার্সন, পাওয়ার খরচ, রেজোলিউশন) দেখানো হয়েছে।
ম্যাগনেটিক ফিল্ড সেন্সর টাইপ
| টাইপ | ব্যাখ্যা | API লেভেল |
|---|---|---|
| TYPE_MAGNETIC_FIELD | স টান্ডার্ড ম্যাগনেটোমিটার (ক্যালিব্রেটেড) | 1 |
| TYPE_MAGNETIC_FIELD_UNCALIBRATED | অক্যালিব্রেটেড র ডেটা (হার্ড आयরন অফসেট সহ) | 18 (Android 4.3) |
র ডেটা পড়া (Uncalibrated)
Sensor uncalibrated = sensorManager.getDefaultSensor(Sensor.TYPE_MAGNETIC_FIELD_UNCALIBRATED);
if (uncalibrated != null) {
// event.values[0-2] = X, Y, Z (without hard iron calibration)
// event.values[3-5] = X, Y, Z bias (estimated hard iron offset)
}
ব্যবহারের ক্ষেত্র
- ডিজিটাল কম্পাস
- ম্যাপ ওরিয়েন্টেশন (উত্তর নির্দেশ)
- মেটাল ডিটেকশন অ্যাপ
- AR/VR হেড ট্র্যাকিং
- ইন্ডোর নেভিগেশন (WiFi + Magnetic fingerprinting)
সেন্সর ক্যালিব্রেশন
ব্যবহারকারীরা প্রায়শই "৮" আকারে ফোন ঘুরিয়ে সেন্সর ক্যালিব্রেট করেন। অ্যাপে ক্যালিব্রেশন প্রম্প্ট যোগ করা উচিত।
অ্যাপ্লিকেশন চালানো
রান করলে সেন্সর থাকলে বিস্তারিত তথ্য সহ "✓ ম্যাগনেটিক ফিল্ড সেন্সর সমর্থিত" দেখাবে।
লক্ষ্য করুন
- আর্টিকেল ১০০৬০৬১২১২-এর সাথে মিলিত (একই সেন্সর, আলাদা নাম)
- বাজেট ডিভাইসগুলে এই সেন্সর থাকে না
- ম্যাগনেটোমিটার এবং ম্যাগনেটিক ফিল্ড সেন্সর একই জিনিস