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

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

ContentResolver ব্যবহার করে SMS ডিলিট করুন

এই উদাহরণটি দেখায় কিভাবে content://sms/ URI ব্যবহার করে ডিভাইসের ইনবক্স থেকে SMS মেসেজ ডিলিট করা যায়। সতর্কতা: এটি সব SMS ডিলিট করে দেবে।

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

ধাপ ২: লেআউট

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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"
    tools:context=".MainActivity">
    <Button
        android:id="@+id/bt_delete"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Delete SMS"
        android:layout_centerInParent="true" />
</RelativeLayout>

ধাপ ৩: MainActivity.java

import android.content.Context;
import android.net.Uri;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {
    private Context mContext;
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        mContext = this;
        Button btn = findViewById(R.id.bt_delete);
        
        btn.setOnClickListener(v -> {
            if (deleteSMS()) {
                Toast.makeText(mContext, "Your message is deleted.", Toast.LENGTH_LONG).show();
            } else {
                Toast.makeText(mContext, "Sorry we can't delete messages.", Toast.LENGTH_LONG).show();
            }
        });
    }
    
    private boolean deleteSMS() {
        boolean isDeleted = false;
        try {
            // সব SMS ডিলিট (নিশ্চিত করে নির্দিষ্ট SMS ডিলিট করুন)
            mContext.getContentResolver().delete(Uri.parse("content://sms/"), null, null);
            isDeleted = true;
        } catch (Exception ex) {
            isDeleted = false;
            ex.printStackTrace();
        }
        return isDeleted;
    }
}

ধাপ ৪: ম্যানিফেস্টে পারমিশন

<uses-permission android:name="android.permission.READ_SMS" />
<uses-permission android:name="android.permission.WRITE_SMS" />

⚠️ গুরুত্বপূর্ণ সতর্কতা এবং সীমাবদ্ধতা

  • Android 4.4 (KitKat) থেকে শুধু **ডিফল্ট SMS অ্যাপ** ही SMS ডিলিট করতে পারে।
  • এই কোড নন-ডিফল্ট অ্যাপে কাজ করবে না (SecurityException থ্রো করবে)।
  • content://sms/ বড় স্কোপ - নির্দিষ্ট SMS ডিলিট করতে WHERE ক্লজ ব্যবহার করুন:

নির্দিষ্ট SMS ডিলিট (বेहতর পদ্ধতি)

// নির্দিষ্ট নম্বরের SMS ডিলিট
String where = "address = ?";
String[] args = new String[] {"+8801XXXXXXXXX"};
getContentResolver().delete(Uri.parse("content://sms/"), where, args);

// নির্দিষ্ট আইডির SMS ডিলিট
getContentResolver().delete(Uri.parse("content://sms/" + smsId), null, null);

আধুনিক বিকল্প (Android 10+)

Scoped Storage এবং SMS Retriever API ব্যবহার করুন। পূর্ণ SMS এক্সেসের জন্য Play Store-এ বিশেষ অনুমোদন লাগে।

  1. অ্যান্ড্রয়েডে চলমান অ্যাপ্লিকেশনগুলো প্রোগ্রামেটিক্যালি খুঁজে বের করা

  2. Android-এ প্রোগ্রামেটিক্যালি অ্যাপ্লিকেশন বন্ধ করা

  3. অ্যান্ড্রয়েড থেকে ম্যালওয়্যার সরানোর উপায়

  4. অ্যান্ড্রয়েডে ইমেজ থাম্বনেইল ডিলিট করুন: ধাপে ধাপে গাইড