sbr 233 ارسال شده در 29 مهر، 2019 اشتراک گذاری ارسال شده در 29 مهر، 2019 سلام دوستان خسته نباشید برای نوشتن روی sd card توی اندروید +6 چکار باید کرد ؟؟ با وجود ران تایم پرمیژن دسترسی های زیر <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> فقط اجازه نوشتن و روی حافظه داخلی رو میده و اجازه نوشتن روی کارت حافظه داده نمیشه با این وجود چطور خیلی از برنامه ها توی اندروید های بالا هم دسترسی به نوشتن روی کارت حافظه رو دارن ؟؟؟ بازم تاکید میکنم نوشتن روی کارت حافظه ی جانبی ( Sd Card) منظورم هست لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
sbr 233 ارسال شده در 31 مهر، 2019 سازنده اشتراک گذاری ارسال شده در 31 مهر، 2019 سلامی مجدد خب راه حلش رو پیدا کردم از اندرود 6 به بالا ران تایم پرمیژن های زیر <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> تنها برای حافظه داخلی گوشی هستند ولی برای دسترسی نوشتن و یا حذف فایل ها از روی کارت حافظه علاوه بر دسترسی های بالا باید از Storage Access Framwork استفاده کرد با این کد متونید framwork رو اجرا کنید startActivityForResult(new Intent(Intent.ACTION_OPEN_DOCUMENT_TREE), 42); و وقتی مسیر اصلی کارت حافظه رو ذخیره کردید ، به صورت خودکار متد نتیجه اجرا میشه ↓↓↓↓↓↓↓↓ @Override public void onActivityResult(int requestCode, int resultCode, Intent resultData) { if (resultCode != RESULT_OK) return; else { Uri treeUri = resultData.getData(); DocumentFile pickedDir = DocumentFile.fromTreeUri(this, treeUri); grantUriPermission(getPackageName(), treeUri, Intent.FLAG_GRANT_READ_URI_PERMISSION | Intent.FLAG_GRANT_WRITE_URI_PERMISSION); getContentResolver().takePersistableUriPermission(treeUri, Intent.FLAG_GRANT_READ_URI_PERMISSION | Intent.FLAG_GRANT_WRITE_URI_PERMISSION); // ذخیر کردن مقدار یوری در شیرد پرفرنس preferences = getSharedPreferences("MyShared" , MODE_PRIVATE) ; SharedPreferences.Editor editor = preferences.edit() ; editor.putString("Dir" , treeUri.toString()); editor.commit() ; } } همونطور که توی کد مشخص هست ابتدا چک میکنه که مسیری رو انتخاب کردید یا نه بعد از طریق Uri مقدار اینتنت رو دریافت میکنه و توی Sharedprefrences ذخیره میکنیم تا هر موقع لازم داشتیم دوباره بگیریمش اما نکته خیل مهم اینه که به توصه گوگل باید از DocumentFile به جای File استفاده کنید البته داکیومنت فایل هم کار باهاش سخت نیست و اکثر متد های File رو داره هر جا هم خواستیم استفاده کنیم مقدار ذخیره شده توی SharedPrefrences رو که به صورت رشته ذخیره کرده بودیم مگیریم و دوباره به Uri تبدیل میکنیم و در نهایت به DocumentFile میدیم Uri uri = Uri.parse(preferences.getString("Dir" ,"")); DocumentFile file = DocumentFile.fromTreeUri(MainActivity.this , uri ) ; file.ListFiles[] خب مسیر انتخاب شده و ذخیره شده توسط Uri رو به DocumentFile دادیم و الان مسیر اصلی کتابخونه رو داریم و با داکیومنت فایل مث همون File عمل مکنیم و الان دسترسی کامل به کارت حافظه رو داریم امیدوارم به کارتون بیاد البته من خودم خواستم از متدDelete استفاده کنیم اما حواسم نبود و یه خط رو جا انداختم و نتیجه این شد که اشتباها مسیر اصیلی کارت حافظم رو دادم به متد Delete و الان کارت حافظم خیلی شیک و مجلسی فرمت شد ☺ دقت کنید به مسیر هاتون با اجازه دوستان و اساتید ، به عنوان بهترین پاسخ انتخاب میکنم لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
مجید آرتا 5,875 ارسال شده در 30 مهر، 2019 اشتراک گذاری ارسال شده در 30 مهر، 2019 سلام به صورت رانتایم دسترسی رو از کاربر میگیرید ؟ دسترسی نوشتن روی sd card رو به صورت رانتایم بگیرید. از لینک های زیر هم میتونید استفاده کنید » Sample 1 Sample 2 Sample 3 لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
sbr 233 ارسال شده در 30 مهر، 2019 سازنده اشتراک گذاری ارسال شده در 30 مهر، 2019 در 4 ساعت قبل، مجید آرتا گفته است : سلام به صورت رانتایم دسترسی رو از کاربر میگیرید ؟ دسترسی نوشتن روی sd card رو به صورت رانتایم بگیرید. از لینک های زیر هم میتونید استفاده کنید » Sample 1 Sample 2 Sample 3 بله دسترسی ران تایمرو میگیرم از کاربر اما همچنان اجازه نوشتن و یا حذف فایل از روی sd card رو نمیده با وجود گرفتن دسترسی های گفته شده همچنان امکان نوشتن و یا حذف فایل از روی کارت حافظه جانبی رو نمیده فقط دسترسی ها رو برای حافظه داخلی گوشی میده دنبال راهی هستم واسه نوشتن و یا ایجاد و یا حذف فایل از روی کارت حافظه هستم لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
سوال
sbr 233
سلام دوستان خسته نباشید
برای نوشتن روی sd card توی اندروید +6 چکار باید کرد ؟؟
با وجود ران تایم پرمیژن دسترسی های زیر
فقط اجازه نوشتن و روی حافظه داخلی رو میده و اجازه نوشتن روی کارت حافظه داده نمیشه
با این وجود چطور خیلی از برنامه ها توی اندروید های بالا هم دسترسی به نوشتن روی کارت حافظه رو دارن ؟؟؟
بازم تاکید میکنم نوشتن روی کارت حافظه ی جانبی ( Sd Card) منظورم هست
لینک ارسال
به اشتراک گذاری در سایت های دیگر
3 پاسخ به این سوال تاکنون داده شده است
ارسالهای توصیه شده
بایگانی شده
این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.