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

বাইনারি কনটেন্ট সেন্ড করুন

বাইনারি ডাটা শেয়ার হয় যথাযথ MIME টাইপ সেটিং দ্বারা একত্রিত ACTION SEND একশন ব্যবহার করে এবং EXTRA STREAM নামে একটি এক্সট্রার মধ্যে ডাটাতে ইউআরআই সন্নিবেশ করে। এটা সাধারনত একটি ইমেজ শেয়ার করার কাজে ব্যবহার করা হয় কিন্তু যে কোন ধরনের বাইনারি কনটেন্ট শেয়ার করতে ব্যবহার করা যেতে পারে:

Intent shareIntent = new Intent();
shareIntent.setAction(Intent.ACTION_SEND);
shareIntent.putExtra(Intent.EXTRA_STREAM, uriToImage);
shareIntent.setType("image/jpeg");
startActivity(Intent.createChooser(shareIntent, getResources().getText(R.string.send_to)));

নিম্নোক্ত বিষয়গুলো নোট করুন:

  • আপনি "/"এর MIME টাইপ ব্যবহার করতে পারেন, কিন্তু এটা শুধু একটিভিটি ম্যাচ করবে যা জেনেরিক ডাটা স্ট্রিম পরিচালনা করতে সক্ষম।

  • রিসিভ করা অ্যাপের ডাটাতে প্রবেশ করতে অনুমতি দরকার যা Uri নির্দেশ করে।এটা করার প্রস্তাবিত উপায় হচ্ছে:

    • আপনার নিজস্ব ContentProvider এ ডাটা স্টোর করুন, এটা নিশ্চিত করতে যে আপনার প্রভাইডারে অন্য অ্যাপের প্রবেশের সঠিক অনুমতি আছে। প্রবশেগম্যতা প্রদানের পছন্দসই মেকানিজম হচ্ছে per-URI permissions ব্যবহার করা যা অস্থায়ী এবং শুধুমাত্র রিসিভ করা অ্যাপলিকেশনে প্রবেমগম্যতাকে অনুমোদন করে। এটার মতো করে একটি ContentProvider তৈরী করার একটা সহজ উপায় হচ্ছে FileProvider হেলপার ক্লাস ব্যবহার করা।

    • সিস্টেম MediaStore বব্যবহার করুন। MediaStore প্রাথমিকভাবে ভিডিও, অডিও এবং ইমেজ MIME টাইপ লক্ষ্য করে করা, কিন্তু অ্যান্ড্রয়েড ৩.০ (এপিআই লেভেল ১১) দিয়ে শুরু করলে এটা নন-মিডিয়া টাইপ (আরও জানতে দেখুন MediaStore.Files) স্টোর করতে পারে। ফাইল scanFile()ব্যবহার করে MediaStore এ প্রবেশ করতে পারে, যেটার পরে শেয়ারের জন্য উপযুক্ত একটি content:// স্টাইল Uri কে প্রভাইডকৃত onScanCompleted()কলব্যাকে পাস করে দেয়। উল্লেখ্য যে একবার সিস্টেম MediaStore যুক্ত হলে কনটেন্টটি ডিভাইসের যে কোন অ্যাপে প্রবেশগম্য হবে।