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

Android-এ স্ট্রিং এনকোড (Encode) করা Base64 ব্যবহার করে

Base64 এনকোডিং ব্যবহার করে স্ট্রিং এনকোড করা

Android-এ android.util.Base64 ক্লাস ব্যবহার করে যেকোনো স্ট্রিং বা বাইট অ্যারে Base64 ফরম্যাটে এনকোড করা যায়। এটি ডেটা ট্রান্সমিশন, স্টোরেজ বা URL-এ সেফলি পাস করার জন্য ব্যবহৃত হয়।

লেআউট (activity_main.xml)

<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:gravity="center_horizontal"
    android:layout_marginTop="30dp"
    android:padding="16dp"
    tools:context=".MainActivity">

    <EditText
        android:id="@+id/edit_query"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="এনকোড করার টেক্সট লিখুন" />

    <Button
        android:id="@+id/buttonPanel"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Encode"
        android:layout_marginTop="16dp" />

    <TextView
        android:id="@+id/text"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="18sp"
        android:layout_marginTop="16dp"
        android:padding="16dp"
        android:background="#F5F5F5" />

</LinearLayout>

MainActivity.java

package com.example.myapplication;

import android.os.Bundle;
import android.util.Base64;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity {

    TextView textView;
    EditText editText;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        editText = findViewById(R.id.edit_query);
        textView = findViewById(R.id.text);

        findViewById(R.id.buttonPanel).setOnClickListener(v -> {
            String input = editText.getText().toString();
            if (!input.isEmpty()) {
                // String → Byte Array → Base64 String
                String encoded = Base64.encodeToString(
                    input.getBytes(java.nio.charset.StandardCharsets.UTF_8), 
                    Base64.DEFAULT
                );
                textView.setText("Encoded:\n" + encoded);
            } else {
                textView.setText("টেক্সট লিখুন");
            }
        });
    }
}

Base64 ফ্ল্যাগ অপশনসমূহ

ফ্ল্যাগবিবরণ
DEFAULTস্ট্যান্ডার্ড Base64 (RFC 4648), লাইন ব্রেক যোগ করে ৭৬ ক্যারেক্টারের পর
NO_WRAPলাইন ব্রেক ছাড়া (URL, JSON, Header-এ ব্যবহারের জন্য)
URL_SAFEURL-সেফ: + → -, / → _, প্যাডিং = বাদ
NO_PADDINGপ্যাডিং (=) বাদ দেয়

সাধারণ ব্যবহার ক্ষেত্রে

  • Basic Auth Header: "username:password" → Base64 → "Authorization: Basic ..."
  • Image to String: Bitmap → ByteArray → Base64 → JSON/SQLite সংরক্ষণ
  • Data URI: "data:image/png;base64," + encodedString
  • Intent Extra: জটিল অবজেক্ট সিরিয়ালাইজ করে পাস করার সময়

ডিকোডিং (Decode) - বিপরীত প্রক্রিয়া

String encoded = "SGVsbG8gV29ybGQ=";
byte[] decodedBytes = Base64.decode(encoded, Base64.DEFAULT);
String original = new String(decodedBytes, StandardCharsets.UTF_8); // "Hello World"

Android-এ স্ট্রিং এনকোড (Encode) করা Base64 ব্যবহার করে

  1. অ্যান্ড্রয়েডে প্রোগ্রাম্যাটিক্যালি ফোন নম্বর পাওয়ার পদ্ধতি

  2. অ্যান্ড্রয়েডে ছবিকে Base64 স্ট্রিং-এ রূপান্তর করার পদ্ধতি

  3. Android-এ সেকেন্ডারি অ্যাক্টিভিটি থেকে মেইন অ্যাক্টিভিটিতে ডেটা পাঠানোর পদ্ধতি

  4. Android ডিভাইসের প্রাইমারি ইমেইল ঠিকানা পাওয়ার পদ্ধতি