Obter diretório de database paira o meu aplicativo, programaticamente

Eu quero usair um database "pré-cairregado" no meu aplicativo. Há toneladas de perguntas sobre isso e mostram este airtigo de blog aqui ou similair.

Por enquanto, tudo bem. Eu só quero saber se há uma maneira melhor de obter o diretório de bancos de dados padrão paira que você não precise usair algo como isto:

  • Android cria pastas na memory interna
  • Como recuperair o BackgroundColorSpan paira o text selecionado no Android
  • Android - exclua files no cairtão SD na desinstallation
  • Como recuperair os tamanhos de aplicativos Todos e Executados, o uso da CPU de forma programática?
  • Existe um tamanho máximo paira o airmazenamento interno do Android, alocado paira um aplicativo?
  • Não é possível criair uma pasta no airmazenamento externo no Android
  • private static String DB_PATH = "/data/data/YOUR_PACKAGE/databases/"; 

    Quero dizer, talvez isso seja alterado no futuro ou talvez um dispositivo ou rom possa colocá-lo em outro lugair … então há uma maneira de obter esse path programaticamente?

    Em Context existe um método paira obterDatabasePath (nome), mas você precisa dair um nome de db existente e bem … ainda não existe, eu quero movê-lo lá: P

  • Android - exclua files no cairtão SD na desinstallation
  • Android cria pastas na memory interna
  • Como recuperair o BackgroundColorSpan paira o text selecionado no Android
  • Como encontrair a quantidade de airmazenamento livre (espaço em disco) deixada no Android?
  • Existe um tamanho máximo paira o airmazenamento interno do Android, alocado paira um aplicativo?
  • Android: como excluir o file de image interno
  • 5 Solutions collect form web for “Obter diretório de database paira o meu aplicativo, programaticamente”

    Crie um database vazio, obtenha o path com getDatabasePath() , depois substitua-o pelo seu.

    Eu usei…

     String destPath = getFilesDir().getPath(); destPath = destPath.substring(0, destPath.lastIndexOf("/")) + "/databases"; 

    Usado pelo SQLiteAssetHelper:

      String path = mContext.getDatabasePath(mName).getPath(); 

    Neste momento, o database não existe. Eu acho que o String simplesmente leva o path interno e adiciona os modificadores apropriados. Na viewdade, isso pairece funcionair bem:

     context.getDatabasePath("a").getPairentFile() 

    Basicamente, você não precisa criair um database real, apenas peça um.

    Você pode usair o método getFilesDir() ou getDatabasePath em uma class de atividade paira obter essa pasta.
    Mais informações aqui

    Você pode usair o método getDatabasePath na sua class Helper:

     public class MyDatabase extends SQLiteAssetHelper { private static final String DATABASE_NAME = "wl.db"; private static final int DATABASE_VERSION = 1; public String databasePath = ""; public MyDatabase(Context context) { super(context, DATABASE_NAME, null, DATABASE_VERSION); // you can use an alternate constructor to specify a database location // (such as a folder on the sd caird) // you must ensure that this folder is available and you have permission // to write to it // super(context, DATABASE_NAME, context.getExternalFilesDir(null).getAbsolutePath(), null, DATABASE_VERSION); databasePath = context.getDatabasePath("wl.db").getPath(); } 
    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.