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

শেয়ারযোগ্য ডিরেক্টরী নির্দিষ্টকরণ

পূর্বে আপনি যদি আপনার মেনিফেস্টে FileProvider যুক্ত করে থাকেন, আপনাকে ডিরেক্টরী নির্দিষ্ট করতে হবে যা সেই ফাইলকে ধরে রাখে যা আপনি শেয়ার করতে চান। ডিরেক্টরী নির্দিষ্ট করতে, আপনার প্রজেক্টের res/xml/ সাবডিরেক্টরীর মধ্যে ফাইল filepaths.xml তৈরী করার মাধ্যমে শুরু করুন। এই ফাইলের মধ্যে, প্রতিটা ডিরেক্টরীর জন্য একটি এক্সএমএল এলিমেন্ট যুক্ত করার মাধ্যমে ডিরেক্টরী নির্দিষ্ট করুন। নিম্নোক্ত অংশটি আপনাকে res/xml/filepaths.xml এর কনটেন্টের উদাহরণ দেখাবে। এই অংশটি আরও প্রমান করবে আপনার ইন্টারনাল স্টোরেজের এলাকার মধ্যে files/ ডিরেক্টরীর একটি সাবডিরেক্টরী কীভাবে শেয়ার করতে হয়:

<paths>
    <files-path path="images/" name="myimages" />
</paths>

এই উদাহরনের মধ্যে, < files-path> ট্যাগ আপনার অ্যাপের ইন্টারনাল স্টোরেজের files/ ডিরেক্টরীর মধ্যে থেকে ডিরেক্টরী শেয়ার করতে পারে। path এট্রিবিউট files/ এর images/ সাবডিরেক্টরী শেয়ার করে। name এট্রিবিউট FileProvider কে files/images/ সাবডিরেক্টরীতে ফাইলের জন্য কনটেন্ট ইউআরআই এ পাথ সেগমেন্ট myimages যুক্ত করতে বলে।

< paths> এলিমেন্টের মাল্টিপল চিলড্রেন থাকতে পারে, শেযার করতে এর প্রতিটা ভিন্ন ডিরেক্টরী নির্দিষ্ট করে। উপরন্তু < files-path> এলিমেন্টে আপনি এক্সটার্নাল স্টোরেজের ডিরেক্টরী শেয়ার করতে < cache-path> এলিমেন্ট ব্যবহার করতে পারেন। চাইল্ড এলিমেন্ট যা শেযার করা ডিরেক্টরী নির্দিষ্ট করে সে সম্পর্কে আরও জানতে, FileProvider রেফারেন্স ডকুমেন্টেশন দেখুন।

নোট: এক্সএমএল ফাইল হচ্ছে আপনি যে ডিরেক্টরী শেয়ার করতে চান তা নির্দিষ্ট করার একমাত্র উপায়; আপনি প্রোগ্রমেটিকভাবে একটি ডিরেক্টরী যুক্ত করতে পারেন না।

এখন আপনার একটি FileProvider এর একটি পূর্ণাঙ্গ স্পেসিফিকেশন আছে যা আপনার অ্যাপের ইনটার্নাল স্টোরেজের files/ ডিরেক্টরীর ফাইলের জন্য অথবা files/এর সাবডিরেক্টরীর ফাইলের জন্য কনটেন্ট ইউআরআই উৎপন্ন করে। যখন আপনার অ্যাপ একটি ফাইলের জন্য কনটেন্ট ইউআরআই উৎপন্ন করে এটা ফাইলের < provider> এলিমেন্ট (com.example.mayapp.fileprovider), পাথ myimages/, এবং নেম এর মধ্যে নির্দিষ্ট অথরিটিকে ধারন করে।

উদাহরণস্বরূপ, এই অনুশীলনের এই চিত্রটি অনুসারে আপনি যদি একটি FileProvider নির্ধারন করেন এবং আপনি যদি ফাইল ফবভধঁষঃথরসধমব.লঢ়ম এর জন্য একটি কনটেন্ট ইউআরআই রিকোয়েস্ট করেন, FileProvider নিম্নোক্ত ইউআরআই ফেরত দেয়:

content://com.example.myapp.fileprovider/myimages/default_image.jpg