رفتن به مطلب
  • 0

دسترسی به کارت حافظه


MR.B4A

سوال

سلام به همه

دوستان، توی اندرویدهای جدید ( مثلا اندروید 13 ) ظاهرا دیگه مجوز ران تایم هم کاربردی نداره.

یکی از دوستان گفت برای تارگت های 28 به بالا باید از ManageExternalStorage استفاده کرد.

من با استفاده از کد زیر میام دسترسی به حافظه رو بگیرم، اما وقتی به ManageExternalStorage میرسه، فورس کلوز میشه:

Private MES As ManageExternalStorage
Dim rp As RuntimePermissions

Private SdkVersion As Int = device.SdkVersion

	MES.Initialize(Me,"MES")

If SdkVersion < 30 Then
		Log("SDK = " & SdkVersion & " : Requesting WRITE_EXTERNAL_STORAGE permission")
		Dim rp As RuntimePermissions
		rp.CheckAndRequest(rp.PERMISSION_WRITE_EXTERNAL_STORAGE) ' Implicit read capability if granted
		Wait For Activity_PermissionResult (Permission As String, Result As Boolean)
		Log($"PERMISSION_WRITE_EXTERNAL_STORAGE = ${Result}"$)
	Else
		Log("SDK = " & SdkVersion & " : Requesting MANAGE_EXTERNAL_STORAGE permission")
		Log("On Entry MANAGE_EXTERNAL_STORAGE = " & MES.HasPermission)
		If Not(MES.HasPermission) Then
			MsgboxAsync("This app requires access to all files, please enable the option", "Manage All Files")
			Wait For Msgbox_Result(Res As Int)
			Log("Getting permission")
			MES.GetPermission
			Wait For MES_StorageAvailable
		End If
	End If

به ران تایم هم میرسه فورس کلوز میشه!!

از این دستورات هم توی منیفست استفاده کردم:

AddPermission(android.permission.MANAGE_EXTERNAL_STORAGE)
SetApplicationAttribute(android:requestLegacyExternalStorage, true)

AddPermission(android.permission.READ_EXTERNAL_STORAGE)
AddPermission(android.permission.WRITE_EXTERNAL_STORAGE)

این مجوزها توی b4a همیشه داستان های خاصه خودشو داره.

واسه کپی کردن دیتابیس توی حافظه یا خوندن دیتابیس و...

ممنون میشم راهنماییم کنید که از چی باید برای گرفتن مجوز و کپی فایل توی حافظه و... استفاده کنم که فورس کلوز نشه.

ممنون.

لینک ارسال
به اشتراک گذاری در سایت های دیگر

5 پاسخ به این سوال تاکنون داده شده است

ارسال‌های توصیه شده

در ۱۴۰۲/۱۲/۷ در ۱۵:۲۴، batman۱۲۳ گفته است:

بعد استاد ببخشید توی همه اندرویدها این خط مسیر امن هست و فورس کلوز نمیده؟!

و انجام میشه؟

runtime.GetSafeDirDefaultExternal(Null)

 

بله این مسیر مسیر safe  مربوط به هر برنامه روی حافظه داخلی هست و دسترسی نیاز نداره

لینک ارسال
به اشتراک گذاری در سایت های دیگر

۷ ساعت قبل، batman۱۲۳ گفته است:

سلام به همه

دوستان، توی اندرویدهای جدید ( مثلا اندروید 13 ) ظاهرا دیگه مجوز ران تایم هم کاربردی نداره.

یکی از دوستان گفت برای تارگت های 28 به بالا باید از ManageExternalStorage استفاده کرد.

من با استفاده از کد زیر میام دسترسی به حافظه رو بگیرم، اما وقتی به ManageExternalStorage میرسه، فورس کلوز میشه:

به ران تایم هم میرسه فورس کلوز میشه!!

از این دستورات هم توی منیفست استفاده کردم:

این مجوزها توی b4a همیشه داستان های خاصه خودشو داره.

واسه کپی کردن دیتابیس توی حافظه یا خوندن دیتابیس و...

ممنون میشم راهنماییم کنید که از چی باید برای گرفتن مجوز و کپی فایل توی حافظه و... استفاده کنم که فورس کلوز نشه.

ممنون.

 

سلام و درود. برای کپی کردن فایل توی حافظه نیازی به دسترسی ندارید اصلا. کافیه تو مسیر زیر کپی کنید

runtime.GetSafeDirDefaultExternal(Null)

 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

۵ ساعت قبل، محمدرضا شاهپیری گفته است:

 

سلام و درود. برای کپی کردن فایل توی حافظه نیازی به دسترسی ندارید اصلا. کافیه تو مسیر زیر کپی کنید

runtime.GetSafeDirDefaultExternal(Null)

 

با دستور copy مشکلی پیش نمیاد یعنی؟

لینک ارسال
به اشتراک گذاری در سایت های دیگر

۷ ساعت قبل، batman۱۲۳ گفته است:

با دستور copy مشکلی پیش نمیاد یعنی؟

نه این حافظه safe هست

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در ۱۴۰۲/۱۱/۲۸ در 07:12، محمدرضا شاهپیری گفته است:

نه این حافظه safe هست

بعد استاد ببخشید توی همه اندرویدها این خط مسیر امن هست و فورس کلوز نمیده؟!

و انجام میشه؟

runtime.GetSafeDirDefaultExternal(Null)

 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

بایگانی شده

این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.

  • کاربران آنلاین در این صفحه   0 کاربر

    • هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.
×
×
  • اضافه کردن...