বাংলায় অ্যান্ড্রয়েড সহায়িকা - Bangla Android Guide

ইনকামিং কনটেন্ট ব্যবস্থাপনা করা

একটি Intent দ্বারা ডেলিভারি দেওয়া কনটেন্ট চালনা করতে, Intent অবজেক্ট পেতে getIntent()কল করে শুরু করুন। আপনার যদি পূর্বেই অবজেক্টটি থেকে থাকে, পরবর্তীতে কি করতে হবে তা নির্ধারণ করতে এটার কনটেন্ট পরীক্ষা করতে পারেন। মনে রাখবেন যে যদি এই একটিভিটি সিস্টেমটির অন্য অংশ থেকে শূরু করতে পারে, যেমন লঞ্চার, তখন এটাকে আপনার বিবেচনায় আনার দরকার হতে পারে যখন ইনটেন্টটি পরীক্ষা করা হয়।

void onCreate (Bundle savedInstanceState) {
    ...
    // Get intent, action and MIME type
    Intent intent = getIntent();
    String action = intent.getAction();
    String type = intent.getType();

    if (Intent.ACTION_SEND.equals(action) && type != null) {
        if ("text/plain".equals(type)) {
            handleSendText(intent); // Handle text being sent
        } else if (type.startsWith("image/")) {
            handleSendImage(intent); // Handle single image being sent
        }
    } else if (Intent.ACTION_SEND_MULTIPLE.equals(action) && type != null) {
        if (type.startsWith("image/")) {
            handleSendMultipleImages(intent); // Handle multiple images being sent
        }
    } else {
        // Handle other intents, such as being started from the home screen
    }
    ...
}

void handleSendText(Intent intent) {
    String sharedText = intent.getStringExtra(Intent.EXTRA_TEXT);
    if (sharedText != null) {
        // Update UI to reflect text being shared
    }
}

void handleSendImage(Intent intent) {
    Uri imageUri = (Uri) intent.getParcelableExtra(Intent.EXTRA_STREAM);
    if (imageUri != null) {
        // Update UI to reflect image being shared
    }
}

void handleSendMultipleImages(Intent intent) {
    ArrayList<Uri> imageUris = intent.getParcelableArrayListExtra(Intent.EXTRA_STREAM);
    if (imageUris != null) {
        // Update UI to reflect multiple images being shared
    }
}

সতর্কতা: ইনকামিং ডাটা চেক করতে অতিরিক্ত যতœবান হোন, আপনি কখনই জানতে পারবেন না অন্য অ্যাপলিকেশন আপনাকে কি সেন্ড করতে পারে। উদাহরণস্বরূপ, ভুল MIME টাইপ সেট হতে পারে, অথবা অতিরিক্ত বড় আকারে ইমেজ সেট হতে পারে। প্রধান ("UI") থ্রেডের মধ্যে করার চেয়ে একটি আলাদা থ্রেডের মধ্যে বাইনারি ডাটা প্রসেস করার বিষয়টাও মনে রাখবেন।

ইউজার ইন্টারফেস আপডেট করাটা একটি EditText পূর্ণ করার মতোই সহজ হতে পারে, অথবা এটা একটি ইমেজে একটা আকর্ষনীয় ফটো ফিল্টার প্রয়োগ করার মতো আরও জটিলও হতে পারে। এটা আসলেই আপনার অ্যাপলিকেশনে সুনির্দিষ্ট যে পরবর্তীতে কি হবে।