【问题标题】:Cannot get access to data directory on Android emulator无法访问 Android 模拟器上的数据目录
【发布时间】:2019-10-17 20:27:56
【问题描述】:

我正在使用 Visual Studio 和 xamarin,但我无法访问数据目录来检索我的数据库以供检查我正在通过以下方式将数据库保存到设备以进行写访问。

我使用的是标准的 stk 7 andriod 手机,它没有植根,也不能植根于我的测试设备,但在模拟过程中,我使用的是带有 Visual Studio 和 xamarin 的 android 模拟器

public async Task<Boolean> copydb()
{
    DatabasePath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Personal), DatabaseName);
    string sdCardPath = @"/sdcard/" + DatabaseName;

    if (!File.Exists(DatabasePath))
    {
        using (var assetStream = await Xamarin.Essentials.FileSystem.OpenAppPackageFileAsync(DatabaseName))
        using (var fileStream = new FileStream(DatabasePath, FileMode.Create, FileAccess.Write))
        {
            assetStream.CopyTo(fileStream);
        }
    }
}

正如您在下面看到的,我上面所说的路径是个人文件夹,即使在模拟器上,我也无法使用安卓监视器导航到数据目录。

我无法点击显示器右侧的数据文件夹,我可以访问其他目录,只是没有数据。

我正在使用 xamarin 表单和 c#

public FuelStockDatabase()
{
    Task.Run(() => this.copydb()).Wait();

    dataTransfer = new FuelStockTakeDT();
    DatabaseName = "FuelStockApp31.db";
    DatabasePath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Personal), DatabaseName);
}

【问题讨论】:

  • 将数据库保存/复制到应用程序的“外部数据”目录(stackoverflow.com/questions/54126671/…),您将能够从该位置adb pull 文件或使用根模拟器图像(即那些未安装 Google 应用)
  • @SushiHangover 好的,我明白了,但是我如何访问我在表单应用程序中从我的 xaml 创建的外部数据库路径
  • @SushiHangover 我最终使用 xamrian 设置为 c-sharpcorner.com/article/…

标签: c# xamarin xamarin.forms xamarin.android


【解决方案1】:

您可能必须根设备。我正在使用 Total Commander adb 插件扩展,它工作正常。你必须导航到android工具文件夹的根文件夹,在那里打开一个cmd,写“adb root”并按回车。

它也应该适用于您的方法,转到数据文件夹,它将显示数据文件夹的内容。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-11-29
    • 1970-01-01
    • 2020-10-21
    • 2018-11-10
    • 2017-10-10
    • 2012-07-08
    • 2014-09-09
    • 1970-01-01
    相关资源
    最近更新 更多