2017-08-05 25 views
-3

Est-ce que quelqu'un a un exemple sur la façon d'utiliser Pragma secure delete? J'en ai besoin pour mon application Android. J'ai tout essayé, mais j'ai toujours une erreur.Comment utiliser Sqlite PRAGMA secure_delete sur Android Java

+0

Veuillez fournir un [mcve] indiquant comment vous essayez de l'utiliser, ainsi que la trace complète de la pile Java associée à votre erreur. – CommonsWare

+0

FWIW, [cette ligne de code] (https://github.com/onionApps/ourbook/blob/master/app/src/main/java/onion/network/ChatDatabase.java#L48) montre comment quelqu'un l'essaie . Je n'ai aucune idée si ce code fonctionne, même si cela semble plausible. – CommonsWare

Répondre

0

Exemples d'utilisation de PRAGMA secure_delete: -

db.rawQuery("PRAGMA secure_delete = FAST;",null); // Intermediate mode 
db.rawQuery("PRAGMA secure_delete = TRUE",null); // ON 
db.rawQuery("PRAGMA secure_delete = FALSE", null); // OFF 
Cursor c = db.rawQuery("PRAGMA secure_delete",null); // GET current state 
while (c.moveToNext()) { 
    for (int i=0; i < c.getCount();i++) { 
     Log.d("PRAGMA","Result ==>" + c.getString(i) + "<=="); 
    } 
} 

Le journal de ce qui précède: -

08-07 17:20:34.590 11030-11030/? D/PRAGMA: Result ==>0<==

ie désactivé, FAST renvoie aussi 0, retourne TRUE (sur) 1.

Remarque! Tout peut retourner le curseur avec le résultat 0 ou 1;

Remarque! 1 ou 0 pour vrai ou faux respectivement ne fonctionne pas, par ex.: -

08-07 17:19:51.831 10516-10516/? E/AndroidRuntime: FATAL EXCEPTION: main 
                Process: mjt.soqanda, PID: 10516 
                java.lang.RuntimeException: Unable to start activity ComponentInfo{mjt.soqanda/mjt.soqanda.MainActivity}: android.database.sqlite.SQLiteException: near "PRGARMA": syntax error (code 1): , while compiling: PRGARMA secure_delete = 1 
                 at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2325) 

Selon un test minimal, en essayant de changer l'état en utilisant

db.execSQL("PRAGMA seccure_delete = FALSE");

ne fait rien, mais ne manque pas.

+0

Se pourrait-il que 'db.execSQL (" PRAGMA seccure_delete = FALSE ")' ait échoué à cause du double 'c'? (note: seCCure ') – PazO