【发布时间】:2017-12-19 07:44:21
【问题描述】:
我正在尝试在我的 Xamarin 应用程序中的内部存储上创建一个 SQLIte 数据库。我正在为离线环境创建一个系统,其中至少有 3 个应用程序与共享数据互连。因此,如果一个应用程序创建了一些数据,那么另一个应用程序应该能够读取这些数据。
Database 项目是一个可移植的类库,我计划将其包含在所有三个应用程序中。
我的 DbHelper 如下:
public Database()
{
string folder = "/data/data/Anchor.Main";
_dbPath = System.IO.Path.Combine(folder, "Anchor.db");
try
{
if (!System.IO.Directory.Exists(folder))
{
System.IO.Directory.CreateDirectory(folder); //Getting error here
}
_connection = new SQLiteConnection(_dbPath);
_connection.CreateTable<Orders>();
_connection.CreateTable<Items>();
}
catch(Exception ex)
{ }
}
我收到错误提示
对路径“/data/data/Anchor.Main”的访问被拒绝。
下面是堆栈跟踪
在 System.IO.Directory.CreateDirectoriesInternal(System.String 路径) [0x0004b] 在 :0 处 System.IO.Directory.CreateDirectory (System.String path) [0x00075] in :0 在 anchorapp.db.Helper.Database..ctor()[0x0002e]
我知道这是因为权限,但我需要设置哪些权限才能从 PCL 写入内部存储?
【问题讨论】:
标签: android sqlite xamarin xamarin.android