Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Curso Xamarin - 4. Persistência de dados - Video 2 - Environment.GetFolderPath(Environment.SpecialFolder.Personal)

O Visual Studio não reconhece a parte do GetFolderPath no projeto Android.

Environment.GetFolderPath(Environment.SpecialFolder.Personal)

No Android é diferente?

2 respostas
solução!

Oi Luis!

Pra sua sorte, eu também fiz esse curso e tenho o código aqui na minha máquina :-)

Provavelmente o Visual Studio está pegando essa classe Environment de outro namespace. Isto é, o Environment que você está vendo pode não ser o mesmo Environment que é usado no curso.

De qualquer forma, estou colocando aqui o código inteiro da minha classe SQLite_android.cs, que funcionou comigo.

using AluraNutricao.Data;
using AluraNutricao.Droid;
using SQLite;
using System;
using System.IO;
using Xamarin.Forms;

[assembly: Dependency(typeof(SQLite_android))]
namespace AluraNutricao.Droid
{
    public class SQLite_android : ISQLite
    {
        public SQLite_android()
        {
        }

        public SQLiteConnection GetConnection()
        {
            var sqliteFilename = "Refeicao.db3";

            string documentsPath = System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal); // Documents folder
            var path = Path.Combine(documentsPath, sqliteFilename);
            var conn = new SQLite.SQLiteConnection(path);
            return conn;
        }
    }
}

um abraço

ahhh entendi. Obrigado.

Aproveitando o assunto. Como ficaria essa classe para UWP? Tentei o código abaixo mas não funcionou... diz que não pode abrir o arquivo db3.

using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Windows.Storage;
using Refeicao.Data;
using Refeicao.UWP;
using SQLite.Net;
using System.IO;
using SQLite.Net.Platform.WinRT;
using Xamarin.Forms;

[assembly:Dependency(typeof(SqLiteUwp))]
namespace Refeicao.UWP
{
    public class SqLiteUwp : ISqLite
    {
        public SqLiteUwp() { }

        public SQLiteConnection Connection()
        {
            var fileName = "Refeicoes.db3";
            var documents = ApplicationData.Current.LocalFolder.ToString();
            var path = Path.Combine(documents, fileName);

            return new SQLiteConnection(new SQLitePlatformWinRT(), fileName);
        }
    }
}

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software