笔记本电脑通过USB看不到外部存储文件



在Android应用程序(API 29(中,我正在编写一个文件,该文件需要通过USB从笔记本电脑上读取。它被写入模拟的外部存储器。不出所料,在物理设备上的Android文件管理器中,我看到的文件位于:

Internal Storage > Android > data > com.xxx.myapp > files > Directory Documents >
Exports > Databases > my file.dbf

然而,从一台USB连接的笔记本电脑上,我看不到使用Android文件传输(甚至是Android Studio的设备文件管理器(的文件。我确实在以下位置看到了私人文件:

Internal Storage > Android > data > data > com.xxx.myapp > files > ...

存储权限在应用程序设置中启用,USB调试在开发人员设置中启用。

虽然这显然不是必要的,但我也启用了清单设置ReadExternalStorage和WriteExternalStorage。

我必须做些什么才能使文件对笔记本电脑可见?

我的代码如下(在Xamarin Android依赖服务中(。

public async Task WriteExternalFileFromStreamAsync ( string foldername, string subfoldername, string filename, Stream stream )
// Writes external file from given stream
{
await Task.Run ( () =>
{
try
{
// Create folder
Context  currentContext = Android.App.Application.Context;
Java.IO.File directory = new Java.IO.File ( currentContext.GetExternalFilesDir( "directorydocuments" ).AbsolutePath + "/" + foldername );
directory.Mkdir ();
// Create subfolder
Java.IO.File subdirectory = new Java.IO.File ( currentContext.GetExternalFilesDir( "directorydocuments" ).AbsolutePath + "/" + foldername + "/" + subfoldername );
subdirectory.Mkdir ();

// Write file
string path = Path.Combine ( subdirectory.AbsolutePath, filename );
using ( FileStream filestream = new FileStream ( path, FileMode.Create, FileAccess.ReadWrite ) )
stream.CopyTo ( filestream );
}
catch ( Exception ex )
{
MyUtil.WriteLogFile ( S.Exception, ex.AsStringVal () );
throw;
}
});
}

经过多次重新启动后,它现在可以工作了。很抱歉

最新更新