با سلام مشکل دسترسی به نوشتن کارت حافظه در گوشی با حافظه داخلی 16 به بالا از کتابخانه M_SdCard_Utils طبق توضیح خودش استفاده کردم آدرس رو بر می گردون ولی در کارت sd فایل ایجاد نمیشه .
کد مر بوط به M_SdCard_Utils نیست این کد آدرس حافظه هایی که روی گوشی فعاله بر می گردونه بعد در حافظه آخری که کارت sd می نویسه.
Sub Activity_Create(FirstTime As Boolean)
'Do not forget to load the layout file created with the visual designer. For example:
Activity.LoadLayout("1")
Dim paths() As Object = GetContext.RunMethod("getExternalFilesDirs", Array(Null))
For Each p As Object In paths
Dim s As String
s=p
s=s.Replace("Android/data/b4a.examplef/files","")
' File.WriteString(s,"ddddddd.txt","sadasdasd")
Log(p)
Log(s)
Next
Dim Writer As TextWriter
Writer.Initialize(File.OpenOutput(s,"dad.txt",False))
Writer.WriteLine("This is the first line.")
Writer.WriteLine("This is the second line.")
Writer.Close
End Sub
Sub GetContext As JavaObject
Return GetBA.GetField("context")
End Sub
Sub GetBA As JavaObject
Dim jo As JavaObject
Dim cls As String = Me
cls = cls.SubString("class ".Length)
jo.InitializeStatic(cls)
Return jo.GetFieldJO("processBA")
End Sub
کد منیفیست
'This code will be applied to the manifest file during compilation.
'You do not need to modify it in most cases.
'See this link for for more information: https://www.b4x.com/forum/showthread.php?p=78136
AddManifestText(
<uses-sdkandroid:minSdkVersion="5"android:targetSdkVersion="22"/><supports-screensandroid:largeScreens="true"android:normalScreens="true"android:smallScreens="true"android:anyDensity="true"/>)
SetApplicationAttribute(android:icon, "@drawable/icon")
SetApplicationAttribute(android:label, "$LABEL$")
'End of default text.
'BSfileChooser
AddManifestText(<uses-permissionandroid:name="android.permission.WRITE_EXTERNAL_STORAGE"/>)
AddPermission(android.permission.WRITE_EXTERNAL_STORAGE)
AddPermission(android.permission.WRITE_EXTERNAL_STORAGE)
وقتی اجرا می کنم خطای زیر
Error occurred on line: 59 (Main)
java.io.FileNotFoundException: /storage/6DAE-18FF/dad.txt: open failed: EACCES (Permission denied)
at libcore.io.IoBridge.open(IoBridge.java:452)
at java.io.FileOutputStream.<init>(FileOutputStream.java:87)
at anywheresoftware.b4a.objects.streams.File.OpenOutput(File.java:370)
at java.lang.reflect.Method.invoke(Native Method)
at anywheresoftware.b4a.shell.Shell.runMethod(Shell.java:710)
at anywheresoftware.b4a.shell.Shell.raiseEventImpl(Shell.java:339)
at anywheresoftware.b4a.shell.Shell.raiseEvent(Shell.java:249)
at java.lang.reflect.Method.invoke(Native Method)
at anywheresoftware.b4a.ShellBA.raiseEvent2(ShellBA.java:139)
at ariafile.example.main.afterFirstLayout(main.java:102)
at ariafile.example.main.access$000(main.java:17)
at ariafile.example.main$WaitForLayout.run(main.java:80)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:7325)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)
Caused by: android.system.ErrnoException: open failed: EACCES (Permission denied)
at libcore.io.Posix.open(Native Method)
at libcore.io.BlockGuardOs.open(BlockGuardOs.java:186)
at libcore.io.IoBridge.open(IoBridge.java:438)
... 18 more
سوال
hosseinkarimian 100
با سلام مشکل دسترسی به نوشتن کارت حافظه در گوشی با حافظه داخلی 16 به بالا از کتابخانه M_SdCard_Utils طبق توضیح خودش استفاده کردم آدرس رو بر می گردون ولی در کارت sd فایل ایجاد نمیشه .
کد مر بوط به M_SdCard_Utils نیست این کد آدرس حافظه هایی که روی گوشی فعاله بر می گردونه بعد در حافظه آخری که کارت sd می نویسه.
Sub Activity_Create(FirstTime As Boolean) 'Do not forget to load the layout file created with the visual designer. For example: Activity.LoadLayout("1") Dim paths() As Object = GetContext.RunMethod("getExternalFilesDirs", Array(Null)) For Each p As Object In paths Dim s As String s=p s=s.Replace("Android/data/b4a.examplef/files","") ' File.WriteString(s,"ddddddd.txt","sadasdasd") Log(p) Log(s) Next Dim Writer As TextWriter Writer.Initialize(File.OpenOutput(s,"dad.txt",False)) Writer.WriteLine("This is the first line.") Writer.WriteLine("This is the second line.") Writer.Close End Sub Sub GetContext As JavaObject Return GetBA.GetField("context") End Sub Sub GetBA As JavaObject Dim jo As JavaObject Dim cls As String = Me cls = cls.SubString("class ".Length) jo.InitializeStatic(cls) Return jo.GetFieldJO("processBA") End Sub
کد منیفیست
وقتی اجرا می کنم خطای زیر
لینک ارسال
به اشتراک گذاری در سایت های دیگر
5 پاسخ به این سوال تاکنون داده شده است
ارسالهای توصیه شده
بایگانی شده
این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.