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

নেটওয়ার্ক প্রোভাইডার থেকে বর্তমান দেশের কোড প্রোগ্রাম্যাটিকভাবে পেতে হয় কীভাবে?

অ্যান্ড্রয়েডে নেটওয়ার্ক প্রোভাইডার ব্যবহার করে বর্তমান দেশের কোড (ISO কোড) প্রোগ্রাম্যাটিকভাবে প্রাপ্ত করার উদাহরণ

এই টিউটোরিয়ালটি দেখাবে কীভাবে আপনি LocationManager.NETWORK_PROVIDER এবং Geocoder ব্যবহার করে ডিভাইসের বর্তমান অবস্থান থেকে দেশের কোড (যেমন: BD, US, IN) পেতে পারেন।

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

Android Studio-তে File → New Project এ যান এবং প্রয়োজনীয় বিবরণ পূরণ করে একটি নতুন প্রজেক্ট তৈরি করুন।

ধাপ ২: লেআউট XML ফাইল সংশোধন করুন

res/layout/activity_main.xml ফাইলে নিচের কোডটি যোগ করুন। এখানে একটি TextView ব্যবহার করা হয়েছে দেশের কোড প্রদর্শনের জন্য।

<?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">

    <TextView
        android:id="@+id/text"
        android:textSize="30sp"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

</LinearLayout>

ধাপ ৩: MainActivity.java ফাইলে কোড যোগ করুন

src/MainActivity.java ফাইলে নিচের কোডটি লিখুন। লোকেশন পারমিশন চেক করে নেটওয়ার্ক প্রোভাইডার থেকে লোকেশন নেওয়া হয় এবং Geocoder দিয়ে address.getCountryCode() কল করে দেশের কোড বের করা হয়।

package com.example.myapplication;

import android.Manifest;
import android.content.pm.PackageManager;
import android.location.Address;
import android.location.Geocoder;
import android.location.Location;
import android.location.LocationManager;
import android.os.Build;
import android.os.Bundle;
import android.support.annotation.RequiresApi;
import android.support.v4.app.ActivityCompat;
import android.support.v7.app.AppCompatActivity;
import android.widget.TextView;
import java.io.IOException;
import java.util.List;

public class MainActivity extends AppCompatActivity {

    TextView textView;
    Location location;
    List<Address> addresses;
    Geocoder geocoder;

    @RequiresApi(api = Build.VERSION_CODES.P)
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        textView = findViewById(R.id.text);

        LocationManager locationManager = (LocationManager) getSystemService(LOCATION_SERVICE);

        if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED
                && ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
            ActivityCompat.requestPermissions(this,
                    new String[]{Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.ACCESS_COARSE_LOCATION}, 101);
        }

        location = locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
        geocoder = new Geocoder(this);
    }

    @RequiresApi(api = Build.VERSION_CODES.O)
    @Override
    public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
        switch (requestCode) {
            case 101:
                if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
                    if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED
                            || ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) == PackageManager.PERMISSION_GRANTED) {
                        try {
                            addresses = geocoder.getFromLocation(location.getLatitude(), location.getLongitude(), 10);
                            Address address = addresses.get(0);
                            textView.setText("" + address.getCountryCode());
                        } catch (IOException e) {
                            e.printStackTrace();
                        }
                    }
                }
                break;
            default:
                super.onRequestPermissionsResult(requestCode, permissions, grantResults);
        }
    }

    @RequiresApi(api = Build.VERSION_CODES.O)
    @Override
    protected void onResume() {
        super.onResume();
        if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED
                || ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) == PackageManager.PERMISSION_GRANTED) {
            try {
                addresses = geocoder.getFromLocation(location.getLatitude(), location.getLongitude(), 10);
                Address address = addresses.get(0);
                textView.setText("" + address.getCountryCode());
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
}

ধাপ ৪: AndroidManifest.xml-এ পারমিশন যোগ করুন

AndroidManifest.xml ফাইলে লোকেশন এবং ইন্টারনেট পারমিশন ডিক্লেয়ার করুন।

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="https://schemas.android.com/apk/res/android"
    package="com.example.myapplication">

    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">

        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
</manifest>

অ্যাপ্লিকেশন চালানোর পদ্ধতি

আপনার অ্যান্ড্রয়েড ডিভাইস কম্পিউটারের সাথে সংযুক্ত করুন। Android Studio-তে প্রজেক্টের যেকোনো এক্টিভিটি ফাইল খুলে টুলবার থেকে Run আইকনে ক্লিক করুন। আপনার মোবাইল ডিভাইসটি নির্বাচন করুন এবং ডিভাইসের স্ক্রিনে বর্তমান দেশের কোড প্রদর্শিত হবে।

নেটওয়ার্ক প্রোভাইডার থেকে বর্তমান দেশের কোড প্রোগ্রাম্যাটিকভাবে পেতে হয় কীভাবে?

নেটওয়ার্ক প্রোভাইডার থেকে বর্তমান দেশের কোড প্রোগ্রাম্যাটিকভাবে পেতে হয় কীভাবে?

  1. অ্যান্ড্রয়েডে বর্তমান থ্রেডের আইডি (ID) পাওয়ার পদ্ধতি

  2. অ্যান্ড্রয়েডে কন্টেন্ট প্রোভাইডার থেকে ফোন নম্বর পাওয়ার পদ্ধতি

  3. অ্যান্ড্রয়েডে ইন্টারনেট থেকে বর্তমান তারিখ ও সময় পাওয়ার পদ্ধতি

  4. এন্ড্রয়েডে প্রোগ্রামেটিক্যালি বর্তমান GPS লোকেশন কীভাবে পাবেন?