এই উদাহরণটি দেখায় কিভাবে আমি Android-এ মোবাইল ডেটা অক্ষম করব৷
৷আপনার অনুসন্ধানের তথ্যের জন্য, আপনার কাছে রুটেড ফোন না থাকলে আমি মনে করি না আপনি প্রোগ্রামগতভাবে ডেটা সক্ষম এবং নিষ্ক্রিয় করতে পারবেন কারণ এটি করার জন্য আমাদের MODIFY_PHONE_STATE অনুমতি অন্তর্ভুক্ত করতে হবে যা শুধুমাত্র সিস্টেম বা স্বাক্ষর অ্যাপ্লিকেশনগুলিতে দেওয়া হয়৷
setMobileDataEnabled() পদ্ধতি প্রতিফলনের মাধ্যমে আর কলযোগ্য নয়। এটি প্রতিফলনের মাধ্যমে Android 2.1 (API 7) থেকে Android 4.4 (API 19) থেকে কলযোগ্য ছিল, কিন্তু Android 5.0 এবং পরবর্তীতে, এমনকি রুট করা ফোনগুলির সাথেও, setMobileDataEnabled() পদ্ধতিটি কলযোগ্য নয়৷
ধাপ 1 − অ্যান্ড্রয়েড স্টুডিওতে একটি নতুন প্রকল্প তৈরি করুন, ফাইল ⇒ নতুন প্রকল্পে যান এবং একটি নতুন প্রকল্প তৈরি করতে সমস্ত প্রয়োজনীয় বিবরণ পূরণ করুন৷
ধাপ 2 − res/layout/activity_main.xml-এ নিম্নলিখিত কোড যোগ করুন।
<?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:orientation="vertical" android:padding="16dp" tools:context=".MainActivity"> <Switch android:id="@+id/switchData" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Mobile Data" /> </LinearLayout>
ধাপ 3 − src/MainActivity.java
-এ নিম্নলিখিত কোড যোগ করুনimport androidx.appcompat.app.AppCompatActivity; import android.content.Context; import android.os.Bundle; import android.telephony.TelephonyManager; import android.util.Log; import android.widget.CompoundButton; import android.widget.Switch; import java.lang.reflect.Method; import java.util.Objects; public class MainActivity extends AppCompatActivity { Switch mySwitch; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mySwitch = findViewById(R.id.switchData); mySwitch.setChecked(getMobileDataState()); mySwitch.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { setMobileDataState(isChecked); } }); } public void setMobileDataState(boolean mobileDataEnabled) { try { TelephonyManager telephonyService = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE); Method setMobileDataEnabledMethod = Objects.requireNonNull(telephonyService).getClass().getDeclaredMethod("setDataEnabled", boolean.class); setMobileDataEnabledMethod.invoke(telephonyService, mobileDataEnabled); } catch (Exception ex) { Log.e("MainActivity", "Error setting mobile data state", ex); } } public boolean getMobileDataState() { try { TelephonyManager telephonyService = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE); Method getMobileDataEnabledMethod = Objects.requireNonNull(telephonyService).getClass().getDeclaredMethod("getDataEnabled"); return (boolean) (Boolean) getMobileDataEnabledMethod.invoke(telephonyService); } catch (Exception ex) { Log.e("MainActivity", "Error getting mobile data state", ex); } return false; } }
পদক্ষেপ 4৷ − androidManifest.xml
-এ নিম্নলিখিত কোড যোগ করুন<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="https://schemas.android.com/apk/res/android" package="app.com.sample"> <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>
আসুন আপনার অ্যাপ্লিকেশন চালানোর চেষ্টা করি৷ আমি ধরে নিচ্ছি আপনি আপনার কম্পিউটারের সাথে আপনার আসল অ্যান্ড্রয়েড মোবাইল ডিভাইসটি সংযুক্ত করেছেন৷ অ্যান্ড্রয়েড স্টুডিও থেকে অ্যাপটি চালাতে, আপনার প্রোজেক্টের অ্যাক্টিভিটি ফাইলগুলির একটি খুলুন এবং টুলবার থেকে রান আইকনে ক্লিক করুন। একটি বিকল্প হিসাবে আপনার মোবাইল ডিভাইস নির্বাচন করুন এবং তারপরে আপনার মোবাইল ডিভাইসটি পরীক্ষা করুন যা আপনার ডিফল্ট স্ক্রীন প্রদর্শন করবে -