আমি অ্যান্ড্রয়েড সমর্থন লাইব্রেরির ফাইলপ্রোভিডার ব্যবহার করে বাহ্যিক অ্যাপ্লিকেশন সহ একটি অভ্যন্তরীণ ফাইল সঠিকভাবে ভাগ করার (উন্মুক্ত নয়) সন্ধান করার উপায় খুঁজছি ।
দস্তাবেজের উদাহরণ অনুসরণ করে,
<provider
android:name="android.support.v4.content.FileProvider"
android:authorities="com.example.android.supportv4.my_files"
android:grantUriPermissions="true"
android:exported="false">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/my_paths" />
</provider>
এবং অন্য অ্যাপ্লিকেশনগুলিতে একটি ফাইল ভাগ করে নিতে শেয়ারকম্প্যাট ব্যবহার করছেন:
ShareCompat.IntentBuilder.from(activity)
.setStream(uri) // uri from FileProvider
.setType("text/html")
.getIntent()
.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION)
কাজ করে না, যেহেতু FLAG_GRANT_READ_URI_PERMISSION কেবলমাত্র উরির জন্য data
অভিপ্রায়ের ভিত্তিতে উল্লিখিত অনুমতি দেয়, EXTRA_STREAM
অতিরিক্ত (যেমন নির্ধারিত ছিল setStream
) মান দেয় না ।
আমি সরবরাহকারীর জন্য সেট android:exported
করে সুরক্ষার সাথে আপোষ করার চেষ্টা করেছি true
, তবে FileProvider
অভ্যন্তরীণভাবে নিজেই রপ্তানি করা হয় কিনা তা পরীক্ষা করে দেখি, যখন তখন এটি ব্যতিক্রম ছুঁড়ে দেয়।