Wot*_*aio 6 storage android usb-drive flutter
是否可以使用 flutter 将文件保存到闪存驱动器?
我正在使用带有 USB c 端口的随身碟,如下所示: https ://www.bestbuy.com/site/sandisk-ultra-dual-drive-go-1tb-usb-type-a-usb-type-c-闪存驱动器-黑色/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"/>
Run Code Online (Sandbox Code Playgroud)
我也尝试过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));
Run Code Online (Sandbox Code Playgroud)
但没有成功
小智 1
尝试使用 Flutter\xe2\x80\x99s 平台通道与处理 USB 驱动器上的文件操作的本机 Android 代码(Java 或 Kotlin)进行通信。
\n扑:
\nimport 'package:flutter/services.dart';\n\nclass UsbStorage {\n static const platform = const MethodChannel('com.example.app/usb');\n ~~~code\n}\nRun Code Online (Sandbox Code Playgroud)\n科特林:
\nclass MainActivity: FlutterActivity() {\n private val CHANNEL = "com.example.app/usb"\n\n override fun configureFlutterEngine(@NonNull flutterEngine: FlutterEngine) {\n~~~code\n}\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
380 次 |
| 最近记录: |