sbr 233 ارسال شده در 7 مرداد، ۱۳۹۸ اشتراک گذاری ارسال شده در 7 مرداد، ۱۳۹۸ سلام دوستان خسته نباشید برای نوشتن روی 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 ارسال شده در 9 مرداد، ۱۳۹۸ سازنده اشتراک گذاری ارسال شده در 9 مرداد، ۱۳۹۸ سلامی مجدد خب راه حلش رو پیدا کردم از اندرود 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,874 ارسال شده در 8 مرداد، ۱۳۹۸ اشتراک گذاری ارسال شده در 8 مرداد، ۱۳۹۸ سلام به صورت رانتایم دسترسی رو از کاربر میگیرید ؟ دسترسی نوشتن روی sd card رو به صورت رانتایم بگیرید. از لینک های زیر هم میتونید استفاده کنید » Sample 1 Sample 2 Sample 3 لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
sbr 233 ارسال شده در 8 مرداد، ۱۳۹۸ سازنده اشتراک گذاری ارسال شده در 8 مرداد، ۱۳۹۸ در 4 ساعت قبل، مجید آرتا گفته است : سلام به صورت رانتایم دسترسی رو از کاربر میگیرید ؟ دسترسی نوشتن روی sd card رو به صورت رانتایم بگیرید. از لینک های زیر هم میتونید استفاده کنید » Sample 1 Sample 2 Sample 3 بله دسترسی ران تایمرو میگیرم از کاربر اما همچنان اجازه نوشتن و یا حذف فایل از روی sd card رو نمیده با وجود گرفتن دسترسی های گفته شده همچنان امکان نوشتن و یا حذف فایل از روی کارت حافظه جانبی رو نمیده فقط دسترسی ها رو برای حافظه داخلی گوشی میده دنبال راهی هستم واسه نوشتن و یا ایجاد و یا حذف فایل از روی کارت حافظه هستم لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
سوال
sbr 233
سلام دوستان خسته نباشید
برای نوشتن روی sd card توی اندروید +6 چکار باید کرد ؟؟
با وجود ران تایم پرمیژن دسترسی های زیر
فقط اجازه نوشتن و روی حافظه داخلی رو میده و اجازه نوشتن روی کارت حافظه داده نمیشه
با این وجود چطور خیلی از برنامه ها توی اندروید های بالا هم دسترسی به نوشتن روی کارت حافظه رو دارن ؟؟؟
بازم تاکید میکنم نوشتن روی کارت حافظه ی جانبی ( Sd Card) منظورم هست
لینک ارسال
به اشتراک گذاری در سایت های دیگر
3 پاسخ به این سوال تاکنون داده شده است
ارسالهای توصیه شده
بایگانی شده
این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.