অ্যান্ড্রয়েড প্রশ্ন: স্কোপড স্টোরেজে এসকিউএল ডাটাবেস


13

অ্যান্ড্রয়েড কিউতে নতুন স্কোপড স্টোরেজ বৈশিষ্ট্য প্রবর্তন করা হয়েছে , যা বলে:

অ্যান্ড্রয়েড 10 (এপিআই স্তর 29) এবং উচ্চতরকে লক্ষ্য করে এমন অ্যাপ্লিকেশনগুলিকে ডিফল্টরূপে বাহ্যিক সঞ্চয়স্থানে স্কোপড অ্যাক্সেস বা স্কোপড স্টোরেজ দেওয়া হয়। এই জাতীয় অ্যাপ্লিকেশনগুলির কেবলমাত্র বাহ্যিক স্টোরেজে থাকা অ্যাপ্লিকেশন-নির্দিষ্ট ডিরেক্টরিতে, পাশাপাশি অ্যাপ্লিকেশনটি তৈরি করেছে এমন নির্দিষ্ট ধরণের মিডিয়াতে অ্যাক্সেস রয়েছে।

আমার কাছে আমার অ্যাপ্লিকেশন রয়েছে যা বাহ্যিক স্টোরেজে এসকিউএল ডাটাবেস তৈরি করে, যেমন অ্যাপ্লিকেশনটি এখনও বেঁচে থাকা ডেটাবেস আনইনস্টল করে এবং পরে পুনরুদ্ধার হিসাবে ব্যবহার করতে পারে বা অ্যান্ড্রয়েড ডিভাইসের বাইরে ব্যবহার করা যেতে পারে (আসুন পিসিতে বলি)

অ্যান্ড্রয়েড কিউ এর সাথে আমার কীভাবে একই প্রভাব অর্জন করা উচিত? আরও স্পষ্টভাবে যদি ডাটাবেস বহিরাগত পাবলিক ডিরেক্টরিতে সঞ্চিত থাকে - আমি কীভাবে মান ব্যবহার করে এই ডাটাবেসটি পড়তে পারি SQLiteOpenHelper?


আপনি কমপক্ষে ফ্রেমওয়ার্ক SQLite বা সমর্থন SQLite AndroidX API (ঘর দ্বারা ব্যবহৃত একটি) দিয়ে পারবেন না। আমি কাস্টম-সংকলিত এসকিউএল লাইব্রেরি এবং সম্ভবত কোনও ফাইল বর্ণনাকারী ব্যবহার করে কিছু অস্পষ্ট সমাধানটি বাতিল করতে পারি না।
কমন্সওয়্যার

না না. noo-উহ-উহ! আমি বিশ্বাস করতে পারি না, পাবলিক ডিরেক্টরিতে রাখা
এসকিউএলাইট

আপনার অ্যাপ্লিকেশনটি শুরু এবং বন্ধ করার সময় আপনি ডাটাবেস ফাইলটির একটি অনুলিপি তৈরি করতে পারেন। মিডিয়া স্টোর ব্যবহার করে আপনার কোনও অনুমতিের দরকার নেই।
ব্ল্যাকআপস

@ ব্ল্যাক্যাপস, অবশ্যই আমি এই বিকল্পটি বুঝতে পেরেছি, যদিও আমি অন্যান্য পদ্ধতির সাথেও আনন্দিত হতে পারি: বাহ্যিক স্টোরেজে
এসকিউএলাইট

অটোব্যাকআপটি ডাটাবেস ফাইল পুনরুদ্ধারের জন্য ব্যবহার করা যেতে পারে।
শিল্প

উত্তর:


3

আপনি ডক্স থেকে সমাধানটি ব্যবহার করার চেষ্টা করতে পারেন:
https://developer.android.com/training/data-stores/compatibility

  • অ্যান্ড্রয়েড 9 (এপিআই স্তর 28) বা তার চেয়ে কম লক্ষ্য করুন।
  • আপনি যদি অ্যান্ড্রয়েড 10 (এপিআই স্তর 29 টি) বা ততোধিক লক্ষ্য requestLegacyExternalStorageকরে trueথাকেন তবে আপনার অ্যাপ্লিকেশনটির ম্যানিফেস্ট ফাইলে এর মান সেট করুন:
<manifest ... >
    <!-- This attribute is "false" by default on apps targeting Android 10 or higher. -->
    <application android:requestLegacyExternalStorage="true" ... >
    ...
    </application>
</manifest>

দেখে মনে হচ্ছে এটি সর্বোত্তম সমাধান, যদিও আমি অন্য সমাধান খুঁজে পেয়ে খুশি হব। আমি কেবল ভয় পেয়েছি যে কিছু সময় android:requestLegacyExternalStorageঅদৃশ্য হয়ে যাবে ...
বার্মেলি রেড স্টার

আমি বুঝতে পেরে অদৃশ্য হয়ে যাওয়ার বিষয়ে, আমরা খুব বেশি সময় অপেক্ষা করব না। Scoped Storage will be required in next year’s major platform release for all apps, independent of target SDK levelঅ্যান্ড্রয়েড কিউ স্কোপড স্টোরেজ: সেরা অনুশীলন এবং আপডেট
মেরভ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.