私はこのコードを使用してSQLiteDBをSDカードの場所(デバイス/ mnt / sdcard / MiniMate上の場所)に保存しています:
string libraryPath = Android.OS.Environment.ExternalStorageDirectory.AbsolutePath;
libraryPath = System.IO.Path.Combine(libraryPath, "MiniMate");
if (!System.IO.Directory.Exists(libraryPath)) System.IO.Directory.CreateDirectory(libraryPath);
string path = System.IO.Path.Combine(libraryPath, sqliteFilename);
VisualStudioからデバイスへのデプロイを使用する場合は完璧に機能します。ただし、.apkを作成してデバイスにインストールすると、エラー「21」が表示されます。DBで何かを行うための権限ではないようです。DBに何かを挿入しようとすると、「制約」エラーが発生します。
誰かがこの問題を知っていますか?DBを別のデフォルトの場所に移動するつもりはありません。ありがとうございます。
私のマニフェストファイル:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:installLocation="internalOnly" package="com.prismvs.minimate" android:versionCode="14" android:versionName="14">
<uses-sdk android:targetSdkVersion="12" android:minSdkVersion="12" />
<application android:icon="@drawable/icon" android:label="MiniMate">
</application>
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.SET_ORIENTATION" />
<uses-permission android:name="android.permission.WRITE_OWNER_DATA" />
<uses-permission android:name="android.permission.READ_OWNER_DATA" />
</manifest>