এই উদাহরণটি সম্প্রচার রিসিভারের মাধ্যমে ইন্টারনেট সংযোগের অবস্থা কীভাবে পরীক্ষা করতে হয় তা প্রদর্শন করে৷
ধাপ 1 − অ্যান্ড্রয়েড স্টুডিওতে একটি নতুন প্রকল্প তৈরি করুন, ফাইল ⇒ নতুন প্রকল্পে যান এবং একটি নতুন প্রকল্প তৈরি করতে প্রয়োজনীয় সমস্ত বিবরণ পূরণ করুন৷
ধাপ 2 − ইন্টারনেটের স্থিতি খুঁজে পেতে আমাদেরকে নীচে দেখানো হিসাবে AndroidManifest.xml ফাইলে নেটওয়ার্ক রাজ্যের অনুমতি যোগ করতে হবে৷
<?xml version="1.0" encoding = "utf-8"?> <manifest xmlns:android = "https://schemas.android.com/apk/res/android" package = "com.example.andy.myapplication"> <uses-permission android:name = "android.permission.ACCESS_NETWORK_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>
ধাপ 3 - পরিবর্তিত প্রধান কার্যকলাপ ফাইল MainActivity.java এর বিষয়বস্তু নিম্নরূপ। এই ফাইলটিতে প্রতিটি মৌলিক জীবনচক্র পদ্ধতি অন্তর্ভুক্ত থাকতে পারে। আমরা একটি টেক্সট ভিউ তৈরি করেছি, যখন টেক্সট ভিউতে ক্লিক করা হয় তখন এটি একটি CONNECTIVITY_ACTION উদ্দেশ্য সম্প্রচার করতে broadcastIntent() পদ্ধতিতে কল করবে।
import android.content.BroadcastReceiver; import android.content.IntentFilter; import android.net.ConnectivityManager; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.TextView; public class MainActivity extends AppCompatActivity { private BroadcastReceiver MyReceiver = null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); MyReceiver = new MyReceiver(); TextView click=findViewById(R.id.click); click.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { broadcastIntent(); } }); } public void broadcastIntent() { registerReceiver(MyReceiver, new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION)); } @Override protected void onPause() { super.onPause(); unregisterReceiver(MyReceiver); } }
পদক্ষেপ 4৷ − একটি নেটওয়ার্ক ইউটিল ক্লাস তৈরি করুন নিচের দেখানো মত নেট ওয়ার্ক স্ট্যাটাস খুঁজতে।
import android.content.Context; import android.net.ConnectivityManager; import android.net.NetworkInfo; class NetworkUtil { public static String getConnectivityStatusString(Context context) { String status = null; ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo activeNetwork = cm.getActiveNetworkInfo(); if (activeNetwork != null) { if (activeNetwork.getType() == ConnectivityManager.TYPE_WIFI) { status = "Wifi enabled"; return status; } else if (activeNetwork.getType() == ConnectivityManager.TYPE_MOBILE) { status = "Mobile data enabled"; return status; } } else { status = "No internet is available"; return status; } return status; } }
ধাপ 5 −একটি ব্রডকাস্ট রিসিভার ক্লাস তৈরি করুন এবং MyReceiver.java নামে নামকরণ করুন। এই ব্রডকাস্ট রিসিভারটি NetworkUtil ক্লাস থেকে UI আপডেট করতে যাচ্ছে।
import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.widget.Toast; public class MyReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { String status = NetworkUtil.getConnectivityStatusString(context); if(status.isEmpty()) { status="No Internet Connection"; } Toast.makeText(context, status, Toast.LENGTH_LONG).show(); } }
ধাপ 6 -নিচে দেখানো মত ম্যানিফেস্ট ফাইলে আপনার ব্রডকাস্ট রিসিভার আপডেট করুন।
<?xml version = "1.0" encoding = "utf-8"?> <manifest xmlns:android="https://schemas.android.com/apk/res/android" package = "com.example.andy.myapplication"> <uses-permission android:name="android.permission.ACCESS_NETWORK_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> <receiver android:name = "MyReceiver"> <intent-filter> <action android:name = "android.net.conn.CONNECTIVITY_CHANGE" /> <action android:name = "android.net.wifi.WIFI_STATE_CHANGED" /> </intent-filter> </receiver> </application> </manifest>
পদক্ষেপ 7 −সংযোগ স্থিতির অভিপ্রায় সম্প্রচার করার জন্য একটি টেক্সটভিউ অন্তর্ভুক্ত করার জন্য res/layout/activity_main.xml ফাইলের বিষয়বস্তু অনুসরণ করা হবে।
<?xml version = "1.0" encoding = "utf-8"?> <android.support.constraint.ConstraintLayout 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:layout_height = "match_parent" tools:context = ".MainActivity"> <TextView android:id="@+id/click" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Click here" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent" /> </android.support.constraint.ConstraintLayout>
আপনার অ্যাপ্লিকেশন চালানোর চেষ্টা করা যাক. আমি ধরে নিচ্ছি আপনি আপনার কম্পিউটারের সাথে আপনার আসল অ্যান্ড্রয়েড মোবাইল ডিভাইসটি সংযুক্ত করেছেন৷ অ্যান্ড্রয়েড স্টুডিও থেকে অ্যাপটি চালাতে, আপনার প্রোজেক্টের অ্যাক্টিভিটি ফাইলগুলির একটি খুলুন এবং টুলবার থেকে রান আইকনে ক্লিক করুন। একটি বিকল্প হিসাবে আপনার মোবাইল ডিভাইস নির্বাচন করুন এবং তারপরে আপনার মোবাইল ডিভাইসটি পরীক্ষা করুন যা আপনার ডিফল্ট স্ক্রীন প্রদর্শন করবে৷
উপরের স্ক্রিনে আমরা ওয়াইফাই কানেকশন সিলেক্ট করেছি এবং আউটপুট এইরকম হওয়া উচিত -
উপরের স্ক্রিনে আমরা ওয়াইফাই কানেকশন সিলেক্ট করেছি এবং আউটপুট এইরকম হওয়া উচিত -