Код: Выделить всё
@CapacitorPlugin(name = "Downloads")
class DownloadsPlugin : Plugin() {
@PluginMethod(returnType = PluginMethod.RETURN_NONE)
fun download(call: PluginCall) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
val filename = call.getString("fileName")!!
val data = call.getString("data")!!
val contentValues = ContentValues().apply {
put(MediaStore.MediaColumns.DISPLAY_NAME, filename)
put(MediaStore.MediaColumns.RELATIVE_PATH, Environment.DIRECTORY_DOWNLOADS)
}
val contentResolver = context.contentResolver
val uri =
contentResolver.insert(MediaStore.Files.getContentUri("external"), contentValues)!!
val outputStream = contentResolver.openOutputStream(uri)!!
outputStream.write(data.toByteArray(StandardCharsets.UTF_8))
}
call.resolve()
}
}
Код: Выделить всё
2022-10-08 16:10:59.064 23121-23184/com.example.example E/Capacitor: Serious error executing plugin
java.lang.reflect.InvocationTargetException
at java.lang.reflect.Method.invoke(Native Method)
at com.getcapacitor.PluginHandle.invoke(PluginHandle.java:125)
at com.getcapacitor.Bridge.lambda$callPluginMethod$0$com-getcapacitor-Bridge(Bridge.java:706)
at com.getcapacitor.Bridge$$ExternalSyntheticLambda5.run(Unknown Source:8)
at android.os.Handler.handleCallback(Handler.java:873)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:193)
at android.os.HandlerThread.run(HandlerThread.java:65)
Caused by: java.lang.IllegalArgumentException: no path was provided when inserting new file
at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:165)
at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:135)
at android.content.ContentProviderProxy.insert(ContentProviderNative.java:476)
at android.content.ContentResolver.insert(ContentResolver.java:1587)
at com.example.example.DownloadsPlugin.download(DownloadsPlugin.kt:36)
at java.lang.reflect.Method.invoke(Native Method)
at com.getcapacitor.PluginHandle.invoke(PluginHandle.java:125)
at com.getcapacitor.Bridge.lambda$callPluginMethod$0$com-getcapacitor-Bridge(Bridge.java:706)
at com.getcapacitor.Bridge$$ExternalSyntheticLambda5.run(Unknown Source:8)
at android.os.Handler.handleCallback(Handler.java:873)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:193)
at android.os.HandlerThread.run(HandlerThread.java:65)
Подробнее здесь: https://stackoverflow.com/questions/740 ... 8-or-lower