কম্পিউটার টিউটোরিয়াল

অ্যান্ড্রয়েড মোবাইল ম্যাগনেটোমিটার সাপোর্ট করে কিনা যাচাই

অ্যান্ড্রয়েড ডিভাইসে ম্যাগনেটোমিটার (Compass) সাপোর্ট যাচাই

এই টিউটোরিয়ালে শিখব কিভাবে SensorManager ব্যবহার করে ডিভাইসে ম্যাগনেটোমিটার (চুম্বकीयক্ষেত্র সেন্সর) উপলব্ধ কিনা তা যাচাই করতে হয়। এটি কম্পাস অ্যাপ বা নেভিগেশন ফিচারের জন্য প্রয়োজনীয়।

প্রয়োজনীয় ধাপসমূহ

ধাপ ১: নতুন প্রজেক্ট তৈরি করুন

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);
        
        // ম্যাগনেটোমিটার সেন্সর যাচাই
        if (sensorManager.getDefaultSensor(Sensor.TYPE_MAGNETIC_FIELD) != null) {
            actionEvent.setText("✓ ম্যাগনেটোমিটার সমর্থিত");
        } else {
            actionEvent.setText("✗ ম্যাগনেটোমিটার সমর্থিত নয়");
        }
    }
}

গুরুত্বপূর্ণ পয়েন্টসমূহ

কনস্ট্যান্টব্যাখ্যা
Sensor.TYPE_MAGNETIC_FIELDজিওম্যাগনেটিক ফিল্ড সেন্সর (ম্যাগনেটোমিটার)
getDefaultSensor()ডিফল্ট সেন্সর অবজেক্ট রিটার্ন করে, না থাকলে null
SensorManagerসেন্সর সার্ভিস অ্যাক্সেসের মূল ক্লাস

সেন্সর লিস্ট পাওয়ার পদ্ধতি

// সব সেন্সর লিস্ট করা
List<Sensor> sensorList = sensorManager.getSensorList(Sensor.TYPE_ALL);
for (Sensor sensor : sensorList) {
    Log.d("Sensor", sensor.getName() + " - " + sensor.getType());
}

ম্যাগনেটোমিটার ব্যবহারের ক্ষেত্র

  • কম্পাস অ্যাপ্লিকেশন
  • ম্যাপ ও নেভিগেশন (উত্তর দিক নির্দেশ)
  • মেটাল ডিটেকশন
  • AR (Augmented Reality) অ্যাপ

সেন্সর মান পড়ার উদাহরণ

Sensor magneticSensor = sensorManager.getDefaultSensor(Sensor.TYPE_MAGNETIC_FIELD);
SensorEventListener listener = new SensorEventListener() {
    @Override
    public void onSensorChanged(SensorEvent event) {
        float x = event.values[0]; // X-axis magnetic field (μT)
        float y = event.values[1]; // Y-axis magnetic field (μT)
        float z = event.values[2]; // Z-axis magnetic field (μT)
    }
    @Override
    public void onAccuracyChanged(Sensor sensor, int accuracy) {}
};
sensorManager.registerListener(listener, magneticSensor, SensorManager.SENSOR_DELAY_NORMAL);

অ্যাপ্লিকেশন চালানো

রান করলে ডিভাইসে ম্যাগনেটোমিটার থাকলে "✓ ম্যাগনেটোমিটার সমর্থিত" দেখাবে, অন্যথায় "✗ ম্যাগনেটোমিটার সমর্থিত নয়"।

লক্ষ্য করুন

  • অনেক বাজেট ফোনে ম্যাগনেটোমিটার থাকে না
  • ট্যাবলেটে প্রায়শই এই সেন্সর অনুপস্থিত থাকে
  • সেন্সর লিস্টে TYPE_MAGNETIC_FIELD এবং TYPE_MAGNETIC_FIELD_UNCALIBRATED দুটোই থাকতে পারে
  1. অ্যান্ড্রয়েড মোবাইল প্রেশার সেন্সর সাপোর্ট যাচাই

  2. অ্যান্ড্রয়েডে বর্তমান Wi-Fi 5 GHz ব্যান্ড সমর্থন করে কিনা যাচাই করুন

  3. অ্যান্ড্রয়েডে Wi-Fi সবসময় আবিষ্কারযোগ্য (Discoverable) কিনা যাচাই করুন

  4. অ্যান্ড্রয়েডে চলমান অ্যাপ্লিকেশন তালিকা পাওয়ার উপায়