J'ai un ensemble de données dans une base de données SQLite. J'ai besoin de visualiser la base de données sur un appareil. Comment puis-je faire cela ?
J'ai vérifié en mode ddms. Les données dans l'explorateur de fichiers sont vides.
J'ai un ensemble de données dans une base de données SQLite. J'ai besoin de visualiser la base de données sur un appareil. Comment puis-je faire cela ?
J'ai vérifié en mode ddms. Les données dans l'explorateur de fichiers sont vides.
étape 1 Copiez cette classe dans votre package
étape 2 placez le code suivant dans votre classe qui étend SQLiteOpenHelper.
//-----------------pour afficher la table de la base de données----------------------------------------
public ArrayList getData(String Query)
{
//obtenir la base de données modifiable
SQLiteDatabase sqlDB =this.getWritableDatabase();
String[] columns = new String[] { "mesage" };
//une liste d'array de curseurs pour sauvegarder deux curseurs : un contenant les résultats de la requête
//l'autre contenant le message d'erreur si des erreurs sont déclenchées
ArrayList alc = new ArrayList(2);
MatrixCursor Cursor2= new MatrixCursor(columns);
alc.add(null);
alc.add (null);
try{
String maxQuery = Query ;
//exécuter la requête, les résultats seront enregistrés dans le curseur c
Cursor c = sqlDB.rawQuery(maxQuery, null);
//ajouter une valeur au curseur2
Cursor2.addRow(new Object[] { "Succès" });
alc.set(1,Cursor2);
if (null != c && c.getCount() > 0)
{
alc.set(0,c);
c.moveToFirst();
return alc ;
}
return alc;
}
catch(SQLException sqlEx)
{
Log.d("impression exception", sqlEx.getMessage());
//si des exceptions sont déclenchées, enregistrer le message d'erreur dans un curseur et renvoyer la liste d'array
Cursor2.addRow(new Object[] { ""+sqlEx.getMessage() });
alc.set(1,Cursor2);
return alc;
}
catch(Exception ex)
{
Log.d("impression exception",ex.getMessage());
//si des exceptions sont déclenchées, enregistrer le message d'erreur dans un curseur et renvoyer la liste d'array
Cursor2.addRow(new Object[] { ""+ex.getMessage() });
alc.set(1,Cursor2);
return alc;
}
}
étape 3 enregistrez dans le manifeste
étape 4
Intent i = new Intent(this, AndroidDatabaseManager.class);
startActivity(i);
Cela fonctionne avec Android 6.0 (au moins les applications débogables):
adb shell "run-as your.package.name cp /data/data/your.package.name/databases/you-db-name /sdcard/file_to_write"
Ensuite, vous pouvez simplement afficher la base de données avec aSQLiteManager par exemple.
Vous pouvez essayer SQLiteOnWeb. Il gère votre base de données SQLite dans le navigateur.
J'espère que cela vous aidera
En utilisant le Terminal, commencez par pointer votre emplacement là où se trouve le SDK Android
par exemple : C:\Users\AppData\Local\Android\sdk\platform-tools>
puis vérifiez la liste des appareils connectés en utilisant
adb devices
et ensuite exécutez cette commande pour copier le fichier depuis l'appareil vers votre système
adb -s VOTRE_ID_DEVICE shell run-as VOTRE_NOM_PACKAGE chmod -R 777 /data/data/VOTRE_NOM_PACKAGE/databases && adb -s VOTRE_ID_DEVICE shell "mkdir -p /sdcard/tempDB" && adb -s VOTRE_ID_DEVICE shell "cp -r /data/data/VOTRE_NOM_PACKAGE/databases/ /sdcard/tempDB/." && adb -s VOTRE_ID_DEVICE pull sdcard/tempDB/ && adb -s VOTRE_ID_DEVICE shell "rm -r /sdcard/tempDB/*"
Vous pouvez trouver le fichier de base de données dans ce chemin
Android\sdk\platform-tools\tempDB\databases
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.