2010-12-07 4 views
0

J'ai trouvé que l'utilisation de SQLiteDatabase.createDatabase peut créer une base de données sur le stockage externe, mais utiliser SQLiteOpenHelper ne peut pas créer de base de données à sdcard. Pourquoi?SQLiteOpenHelper ne peut pas créer de base de données à sdcard

+0

Je me souviens vaguement (il y a une demi-année) que je ne pouvais pas utiliser SQLiteOpenHelper pour SDCard , donc je suis juste passé à un emplacement DB par défaut (mémoire interne). La seule raison de l'utilisation de SDCard était la taille de la base de données. Comme mes "enregistrements" contiennent des images, j'ai décidé de ne stocker que le chemin de l'image dans la base de données, alors que les images sont sur la carte SD. Cela m'a permis de garder la taille compacte de la DB (la mémoire interne est plutôt limitée) et cela fonctionne pour le moment. –

+0

Vous devez avoir un accès en écriture à la carte SD. Si vous avez cela, fournissez simplement un nom de chemin complet à l'aide de la base de données. –

+0

Ou peut-être pas. Je viens de vérifier mon ancien code, et j'ai seulement traité les bases de données que j'ai téléchargées sur la carte SD. Je n'utilise pas d'aide de base de données dans mes adaptateurs de base de données pour ceux-ci. Je viens d'utiliser SQLiteDatabase.openDatabase (databaseFile, null, SQLiteDatabase.OPEN_READONLY | SQLiteDatabase.NO_LOCALIZED_COLLATORS); –

Répondre

2
> SQLiteOpenHelper can not create database to sdcard. Why? 

... parce qu'il obtient le chemin de fichier absolu pour la base de données à partir de l'objet de contexte.

DatabaseHelper(finalcontexte Contexte, String databaseName)

La mise en œuvre par défaut contexte ne prend pas en charge les chemins par l'utilisateur.

Vous pouvez fournir votre propre mise en œuvre de contexte qui fournit un chemin de fichier comme expliqué dans ma réponse à stackoverflow sqliteopenhelper-problem-with-fully-qualified-db-path-name

Questions connexes