Android内部共享存储中的Xamarin SqlLite数据库

时间:2018-05-02 17:46:26

标签: android sqlite xamarin

我的应用程序将脱机使用,我计划通过USB电缆进行每日拉/推同步。我的用户处于一种非常原始的状态:没有wifi,没有手机信号塔。我的问题不是关于同步,而是只是访问数据以便我可以进行同步。

我连接电缆,选择USB进行文件传输,我可以看到内部共享存储。但我无法在任何地方找到我的SqlLite数据库。我已经尝试将这些路径用于数据库:

Environment.GetFolderPath(System.Environment.SpecialFolder.ApplicationData); 
Environment.GetFolderPath(Environment.SpecialFolder.Personal);
Android.App.Application.Context.FilesDir.AbsolutePath;

该应用程序适用于任何这些路径,数据存储和检索,但我无法从我的PC上看到数据库。

我也试过了,但它爆炸了:

Android.OS.Environment.GetExternalStoragePublicDirectory(Android.OS.Environment.DirectoryDownloads).AbsolutePath;

我已尝试使用Xamarin Live进行调试,但后来我收到此错误:

  

“你需要调用SQLitePCL.raw.SetProvider();”

我尝试添加console.writelineLog.Error来添加一些诊断信息但我在内部共享存储中找不到任何日志文件。

我在清单中拥有WRITE_EXTERNAL_STORAGEWRITE_EXTERNAL_STORAGE权限;即便如此,我认为没有必要。

如果我可以将文件存储在内部共享存储中,那么我可以将数据库放在那里并访问它以进行同步。我可以创建一个简单的文本记录工具来将文本日志写入同一个地方。

我很少在40年内寻求帮助,但我已经在这几天了。谢谢!

1 个答案:

答案 0 :(得分:-1)

SQLite数据库存储在应用程序专用内存中,无法通过USB访问,请尝试将数据库内容导出到内部存储器或外部存储器中的外部文件,以便能够通过USB和弦访问它。