2015-09-03 39 views
10

riesco a ottenere export.realm utilizzando quelli codiceRealm su Windows 10

package com.meow.meowmeow; 
import android.content.Context; 
import android.content.Intent; 
import android.content.res.AssetManager; 
import android.net.Uri; 
import android.util.Log; 

import java.io.File; 
import java.io.FileInputStream; 
import java.io.FileOutputStream; 
import java.io.IOException; 
import java.io.InputStream; 
import java.io.OutputStream; 

import io.realm.Realm; 
import io.realm.RealmConfiguration; 

/** 
* Created by Thien on 9/1/2015. 
*/ 
public class RealmTool { 
    private static String LOG_TAG = "RealmTool"; 

    //export to email 
    public static void exportDatabase(Context context,RealmConfiguration configuration) { 

     // init realm 
     Realm realm = Realm.getInstance(configuration); 

     File exportRealmFile = null; 
     try { 
      // get or create an "export.realm" file 
      exportRealmFile = new File(context.getExternalCacheDir(), "export.realm"); 

      // if "export.realm" already exists, delete 
      exportRealmFile.delete(); 

      // copy current realm to "export.realm" 
      realm.writeCopyTo(exportRealmFile); 


     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
     realm.close(); 

     // init email intent and add export.realm as attachment 
     Intent intent = new Intent(Intent.ACTION_SEND); 
     intent.setType("plain/text"); 
     intent.putExtra(Intent.EXTRA_EMAIL, "YOUR MAIL"); 
     intent.putExtra(Intent.EXTRA_SUBJECT, "YOUR SUBJECT"); 
     intent.putExtra(Intent.EXTRA_TEXT, "YOUR TEXT"); 
     Uri u = Uri.fromFile(exportRealmFile); 
     intent.putExtra(Intent.EXTRA_STREAM, u); 

     // start email intent 
     context.startActivity(Intent.createChooser(intent, "YOUR CHOOSER TITLE")); 
    } 

    //import from assets 
    public static RealmConfiguration importDatabase(Context context, String realm_file_name){ 
     RealmConfiguration defaultRealm = new RealmConfiguration.Builder(context).build(); 
     String dir = defaultRealm.getPath(); 
     AssetManager assetManager = context.getAssets(); 
     try { 
      InputStream is; 
      is = assetManager.open(realm_file_name); 
      File dest = new File(dir); 
      if (dest.exists()) 
       dest.delete(); 
      copy(is,dest); 
     }catch (IOException e){ 
      Log.e(LOG_TAG,"import database error"); 
     } 
     return defaultRealm; 
    } 

    public static void copy(File src, File dst) throws IOException { 
     InputStream in = new FileInputStream(src); 
     OutputStream out = new FileOutputStream(dst); 

     // Transfer bytes from in to out 
     byte[] buf = new byte[1024]; 
     int len; 
     while ((len = in.read(buf)) > 0) { 
      out.write(buf, 0, len); 
     } 
     in.close(); 
     out.close(); 
    } 
    public static void copy(InputStream in, File dst) throws IOException { 

     OutputStream out = new FileOutputStream(dst); 

     // Transfer bytes from in to out 
     byte[] buf = new byte[1024]; 
     int len; 
     while ((len = in.read(buf)) > 0) { 
      out.write(buf, 0, len); 
     } 
     in.close(); 
     out.close(); 
    } 

} 

Ora voglio di check it out. Come modificarlo in Windows. Lo sviluppatore ha detto di avere solo il browser di regno su Mac ma sto usando Windows 10. Quindi chiunque ha modi o strumenti per il regno dei browser su Windows. Grazie.

risposta

17

(Disclaimer:. Sono il ragazzo responsabile della Realm Browser per Mac :))

Vi sentiamo! Sfortunatamente, al momento, per prendere in considerazione anche una versione di Realm Browser per Windows, abbiamo bisogno di ottenere Realm stesso in esecuzione su Windows per cominciare! È qualcosa su cui stiamo assolutamente lavorando, ma ovviamente non è una piccola quantità di lavoro; quindi non abbiamo ancora nessuna cronologia di rilascio.

Per il momento, se si desidera eseguire il debug di un file Reame da un'applicazione Android, c'è in realtà un open-source di terze parti Realm Android davvero cool del browser che si potrebbe utilizzare invece: https://github.com/dmytrodanylyk/realm-browser

Mi dispiace non potrei portare notizie migliori, ma per lo meno, spero che aiuti nel frattempo. Ma siamo consapevoli al 100% che avere una versione equivalente di Realm Browser su Windows sarebbe di grande aiuto nello sviluppo di Android su quella piattaforma.

+0

grazie per la risposta. Controllerò. –

+1

L'autore di quell'app ha dichiarato, il 12 settembre 2015, che la libreria non è più supportata. – Benjamin

+0

@TiM guarda questa domanda, relativa a realm studio per windows https://stackoverflow.com/questions/47505171/android-realm-database-decryption-failed – Aks4125

3

Un'altra soluzione, c'è il plugin Stetho Realm di terze parti https://github.com/uPhyca/stetho-realm, Stetho è un bridge di debug Android sviluppato da Facebook. Ti consente inoltre di visualizzare i dati del Realm sui tuoi dispositivi.

1

Dopo aver controllato tutte le risposte precedenti ho pensato di mettere le mie ultime ricerche su questo thread.

Come per il collegamento qui sotto non hanno ancora nulla a posto per Windows. Sei fortunato se stai usando mac.

https://realm.io/docs/java/latest/

Ma hanno accennato circa l'utilità di generazione da Facebook per sfogliare e modificare i dati regno.

http://facebook.github.io/stetho/

PS: Quelli di voi che non sanno come eseguire il debug dell'applicazione dal browser Chrome, si può andare a ispezionare le opzioni dei dispositivi facendo clic su tre punti verticali in alto a destra su bicromato di potassio. Visita altri strumenti - >> Strumenti per sviluppatori - >> Di nuovo fai clic su tre punti verticali - >> altre opzioni - >>> Ispeziona dispositivi. Dopodiché vedresti la stessa interfaccia utente come funzionalità nel link sopra.

3

Ho appena scritto un semplice Realm Browser (Rebro) sotto forma di plug-in Android Studio. Non sapendo quanto grande è la domanda, è stata più una sfida. Ma comunque, ecco qui: https://github.com/Ghedeon/Rebro

+0

@MarkBuikema lo fa. – Ghedeon