gpt4 book ai didi

android - 将数据库数据从一个 android 设备传输到另一个

转载 作者:行者123 更新时间:2023-11-29 01:46:40 25 4
gpt4 key购买 nike

我有一个应用程序需要实现“共享”选项,以将设备本地数据库中包含的数据传输到另一台设备,该设备可以获取此数据并将其插入设备数据库中的适当表中。

我通过蓝牙进行通信,我只是在寻找一种传输这些数据的好方法。有没有一种简单的方法可以在设备 A 上执行 sqlite 转储,使用蓝牙将其传输到设备 B,并让设备 B 重新插入此数据?

最佳答案

实现 ContentProvider是您如何利用 Android 框架对数据库执行 CRUD 操作。

一个好方法可能是将一行转换为 Json 并在接收端解包该字符串以将其插入。这种方式更易于测试,更容易从发送过程中的错误中恢复,但可能会非常慢,具体取决于数据的大小。为了加快速度,我会分批发送多行并进行测试,看看哪种批量大小最适合速度和可靠性。

一种快速的方法可能是将数据转储到平面文件,然后使用 FileProvider以 URI 的形式提供对该文件的访问,并尝试使用 here 中的类似内容

    public void sendFile(Uri uri, BluetoothSocket bs) throws IOException {
BufferedInputStream bis = new BufferedInputStream(getContentResolver().openInputStream(uri));
OutputStream os = bs.getOutputStream();
try {
int bufferSize = 1024;
byte[] buffer = new byte[bufferSize];

// we need to know how may bytes were read to write them to the byteBuffer
int len = 0;
while ((len = bis.read(buffer)) != -1) {
os.write(buffer, 0, len);
}
} finally {
bis.close();
os.flush();
os.close();
bs.close();
}
}

关于android - 将数据库数据从一个 android 设备传输到另一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21022505/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com