WifiManager ব্যবহার করে WiFi টগল করা
এই উদাহরণে দুটি বাটন ব্যবহার করে WiFi সক্ষম এবং অক্ষম করার পদ্ধতি দেখানো হয়েছে। `WifiManager.setWifiEnabled()` মেথড ব্যবহার করা হয়েছে। মনে রাখবেন Android 10+ এ এই পদ্ধতি ডিপ্রিকেটেড।
ধাপ ১: প্রজেক্ট তৈরি করুন
স্ট্যান্ডার্ড অ্যান্ড্রয়েড প্রজেক্ট।
ধাপ ২: লেআউট - দুটি বাটন
res/layout/activity_main.xml - `onClick` অ্যাট্রিবিউট ব্যবহার:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="https://schemas.android.com/apk/res/android"
xmlns:tools="https://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:orientation="vertical"
tools:context=".MainActivity">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="WiFi On!"
android:onClick="enableWifi" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="WiFi Off!"
android:onClick="disableWifi" />
</LinearLayout>
ধাপ ৩: WiFi টগল লজিক
src/MainActivity.java:
import android.content.Context;
import android.net.wifi.WifiManager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
private WifiManager wifiManager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Application Context ব্যবহার করুন মেমরি লিক এড়াতে
wifiManager = (WifiManager) getApplicationContext().getSystemService(Context.WIFI_SERVICE);
}
public void enableWifi(View view) {
if (wifiManager != null && !wifiManager.isWifiEnabled()) {
wifiManager.setWifiEnabled(true);
Toast.makeText(this, "WiFi Enabled", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(this, "WiFi Already Enabled", Toast.LENGTH_SHORT).show();
}
}
public void disableWifi(View view) {
if (wifiManager != null && wifiManager.isWifiEnabled()) {
wifiManager.setWifiEnabled(false);
Toast.makeText(this, "WiFi Disabled", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(this, "WiFi Already Disabled", Toast.LENGTH_SHORT).show();
}
}
}
ধাপ ৪: প্রয়োজনীয় পারমিশন
AndroidManifest.xml:
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
⚠️ Android 10+ এ পরিবর্তন
মূল পরিবর্তন: API Level 29 (Android 10) থেকে স드র ভ্যালু `setWifiEnabled()` ডিপ্রিকেটেড। অ্যাপগুলো সরাসরি WiFi স্টেট পরিবর্তন করতে পারবে না।
বিকল্প পদ্ধতি: ব্যবহারকারীকে WiFi সেটিংস প্যানেলে রিডাইরেক্ট করুন:
বিকল্প পদ্ধতি: ব্যবহারকারীকে WiFi সেটিংস প্যানেলে রিডাইরেক্ট করুন:
Intent intent = new Intent(Settings.Panel.ACTION_WIFI); startActivityForResult(intent, REQUEST_WIFI_SETTINGS);বা সিস্টেম সেটিংস ইন্টেন্ট:
startActivity(new Intent(Settings.ACTION_WIFI_SETTINGS));
সেরা অনুশীলন
- Application Context ব্যবহার করুন (`getApplicationContext()`) - এক্টিভিটি কনটেক্সট ব্যবহার করলে মেমরি লিক হতে পারে
- WiFi স্টেট চেক করুন অ্যাকশন নেওয়ার আগে (`isWifiEnabled()`)
- ব্যবহারকারীকে জানান WiFi স্টেট পরিবর্তন হয়েছে
- Android 10+ টার্গেট করলে Settings Panel API ব্যবহার করুন