Как писать в базу данных SQLLite с помощью contentResolver в Xamarin? - PullRequest
0 голосов
/ 10 июля 2020

Я получил этот код:

ContentValues content = new ContentValues();

content.Put(TokenProvider.InterfaceConsts.Id, "3"); 
content.Put(TokenProvider.InterfaceConsts.Token, "token3");
content.Put(TokenProvider.InterfaceConsts.ExparationDate, "date3");
try
{
    ApplicationContext.ContentResolver.TakePersistableUriPermission(TokenProvider.CONTENT_URI, Android.Content.ActivityFlags.GrantWriteUriPermission);
    var ddd = ApplicationContext.ContentResolver.Insert(TokenProvider.CONTENT_URI, content);
    Android.Util.Log.Debug("test", "ddd: " + ddd);
} catch (...) {...}

И мой TokenProvider выглядит так:

[ContentProvider(new string[] { TokenProvider.AUTHORITY }, Exported = true, GrantUriPermissions = true, Label ="TokenProvider" )]
class TokenProvider : ContentProvider {
    ServiceDB _s_DB;
    public const string AUTHORITY = "com.***.***.TokenProvider";
    static string BASE_PATH = "accesstokens";
    static string DATABASE_TABLE = "accesstokens";
    public static Android.Net.Uri CONTENT_URI = Android.Net.Uri.Parse("content://" + AUTHORITY + "/" + BASE_PATH);
    // MIME types used for getting a list, or a single access token
    public const string ACCESS_TOKEN_MIME_TYPES = ContentResolver.CursorDirBaseType + "/vnd.com.***.***.AccessTokens";
    public const string ACCESS_TOKEN_MIME_TYPE = ContentResolver.CursorItemBaseType + "/vnd.com.***.***.AccessTokens";
  

    // if you need anything more from here, I'll provide

}

Это вызывает ошибку (попробуйте поймать):

No persistable permission grants found for UID 10066 and  
Uri content://com.***.***.TokenProvider/accesstokens
[user 0] Java.Lang.RuntimeException: No persistable permission grants found 
for UID 10066 

После поиска я обнаружил следующее:

Не найдено постоянных разрешений для URI

Но я понятия не имею, как открыть мою БД таким образом, вы можете помочь мне?

Спасибо за ваше время.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...