在闪存驱动器中写入文件(仅限Android)

问题描述 投票:0回答:3

是否可以使用flutter将文件保存到闪存驱动器?

我正在使用带有 USB C 端口的随身碟,如下所示: https://www.bestbuy.com/site/sandisk-ultra-dual-drive-go-1tb-usb-type-a-usb-type-c-flash-drive-black/6560692.p?skuId=6560692

我发现这个问题: https://github.com/flutter/flutter/issues/40504

我已经尝试了几件事,

path_provider
无法使用
getExternalStorageDirectories()

正确返回目录

我已经将权限添加到清单中并使用

permission_handler

请求它
<uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"
    android:maxSdkVersion="28" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.INTERNET"/>

我也尝试过

file_picker
await FilePicker.platform.getDirectoryPath();

但是当选择闪存驱动器上的文件夹时,它返回的路径只是:

/

我也尝试过使用

usb_serial

final bytes = <int>[];

await yt.videos.streamsClient.get(audioStream).listen((chunk) {
  bytesReceived += chunk.length;
  bytes.addAll(chunk);

}, onDone: () async{
  MyLog.log('Done onDone');

}, onError: (error) async{
  MyLog.log('Done error: $error');

}).asFuture();

final devices = await UsbSerial.listDevices();
final port = await devices.first.create();
final openResult = await port?.open();

if ( !(openResult ?? false)) {
  MyLog.log("Failed to open");
  return;

}

port?.inputStream?.listen((Uint8List event) {
  MyLog.log('Event close');
  port.close();
});

await port?.write(Uint8List.fromList(bytes));

但是没有成功

android flutter storage usb-drive
3个回答
0
投票

由于您只需要 android,并且显然现有的 flutter 解决方案不起作用,因此您可以创建自己的平台通道并为 android 原生创建所需的方法。

然后,根据您的目标 Android 版本,直接访问 SD 卡可能根本不可能,请参阅此博客文章..


0
投票

尝试使用 Flutter 的平台通道与处理 USB 驱动器上的文件操作的原生 Android 代码(Java 或 Kotlin)进行通信。

颤抖:

import 'package:flutter/services.dart';

class UsbStorage {
  static const platform = const MethodChannel('com.example.app/usb');
   ~~~code
}

科特林:

class MainActivity: FlutterActivity() {
  private val CHANNEL = "com.example.app/usb"

  override fun configureFlutterEngine(@NonNull flutterEngine: FlutterEngine) {
~~~code
}

0
投票

我强烈推荐资金回收室解决方案的服务,它在收回我天真地投入虚假加密投资计划中的毕生积蓄方面做得非常出色。我遇到了压力很大的情况,他们对我非常耐心,并帮助我度过了难关。工作人员非常合法,善于在 gmail dot com 的资金恢复室向他们发送电子邮件进行解释,而不仅仅是对问题进行分类并在没有良好回应的情况下收费。我必须赞扬他们从偷我钱的人那里追回了我的钱。如果您需要此类服务,您可以通过以下方式联系他们:([email protected])“感谢您的辛勤工作,我真的很感激您能够收回我的资金,他们的透明度和承诺尽管费用是公平的,但我的康复在整个过程中都令人钦佩。我发送此证词是为了确认其合法性。 电子邮件:fundrecoverychambers at gmail dot com

© www.soinside.com 2019 - 2024. All rights reserved.