我设法使用这些代码获取export.realm
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();
}
}
现在我想查看一下。 如何在Windows中编辑它。 开发人员表示他们在Mac上只有领域浏览器 但我正在使用Windows 10。 所以任何人都有任何方法或任何工具来浏览Windows上的领域。 谢谢。
答案 0 :(得分:17)
(免责声明:我是负责Realm Browser for Mac的人。:))
我们听到你了!不幸的是,目前,甚至考虑使用Realm Browser for Windows版本,我们需要让Realm本身在Windows上运行才能开始!这是我们绝对努力的事情,但显然这不是一件小事;所以我们还没有获得任何发布时间表。
目前,如果您想从Android应用程序调试Realm文件,实际上是一个非常酷的开源第三方Android Realm浏览器应用程序,您可以使用它:{{3} }
对不起,我无法提供更好的消息,但至少,我希望在此期间有所帮助。但是我们100%意识到在Windows上拥有相同版本的Realm Browser会极大地帮助在该平台上进行Android开发。
答案 1 :(得分:3)
另一个解决方案是,有第三方的Stetho Realm插件https://github.com/uPhyca/stetho-realm,Stetho是由Facebook开发的Android调试桥。它还可以让您在设备上查看Realm的数据。
答案 2 :(得分:3)
我刚刚以Android Studio插件的形式编写了一个简单的Realm Browser(Rebro)。不确定需求有多大,更像是挑战。但无论如何,你走了:https://github.com/Ghedeon/Rebro
答案 3 :(得分:1)
在检查了所有旧的答案后,我想把我最新的研究放在这个帖子上。
根据以下链接,他们还没有适合Windows的任何内容。如果你使用的话,你很幸运。
https://realm.io/docs/java/latest/
但是他们已经提到过facebook的实用程序构建来浏览和编辑领域数据。
http://facebook.github.io/stetho/
PS:那些不知道如何从Chrome浏览器调试应用程序的人,你可以通过点击chrome右上角的三个垂直点来检查设备选项。 访问更多工具 - >>开发者工具 - >>再次点击三个垂直点 - >>更多选项 - >>>检查设备。之后,您会看到与上述链接中的功能相同的用户界面。