دوستان، توی اندرویدهای جدید ( مثلا اندروید 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
سوال
MR.B4A 104
سلام به همه
دوستان، توی اندرویدهای جدید ( مثلا اندروید 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 پاسخ به این سوال تاکنون داده شده است
ارسالهای توصیه شده
بایگانی شده
این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.