您好我的应用程序中我需要通过Intent类将我的数据库文件备份到Google Drive帐户,我只需创建该文件并将其发送到" Intent.ACTION_SEND"并且用户需要选择Google云端硬盘。现在,我想再次从谷歌驱动器导入到我的应用程序。这可能吗? 还有一件事..还有一种方法可以将它直接上传到谷歌硬盘吗?因为意图选择器为用户提供了所有选项。
这是我的代码如何保存它:
@SuppressLint("SdCardPath")
private void exportDB() throws IOException {
// Open your local db as the input stream
try {
String inFileName = "/data/data/com.appsa.work/databases/"+DbHandler.DB_NAME;
File dbFile = new File(inFileName);
FileInputStream fis = new FileInputStream(dbFile);
String outFileName = Environment.getExternalStorageDirectory() + "/work/MyDatabase";
// Open the empty db as the output stream
OutputStream output = new FileOutputStream(outFileName);
// transfer bytes from the inputfile to the outputfile
byte[] buffer = new byte[1024];
int length;
while ((length = fis.read(buffer)) > 0) {
output.write(buffer, 0, length);
}
// Close the streams
output.flush();
output.close();
fis.close();
} catch (Exception e) {
Toast.makeText(context, e.toString(), Toast.LENGTH_LONG)
.show();
}
Toast.makeText(context,
"Uploaded.",
Toast.LENGTH_LONG).show();
}
public void sendDb(String mailAddres){
Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("text/plain");
intent.putExtra(Intent.EXTRA_EMAIL, new String[] {mailAddres});
intent.putExtra(Intent.EXTRA_SUBJECT, "my file");
File root = Environment.getExternalStorageDirectory();
File file = new File(root, "/work/MyDatabase");
if (!file.exists() || !file.canRead()) {
Toast.makeText(context, "no sd_card", Toast.LENGTH_SHORT).show();
return;
}
Uri uri = Uri.parse("file://" + file.getAbsolutePath());
intent.putExtra(Intent.EXTRA_STREAM, uri);
context.startActivity(Intent.createChooser(intent, "Send"));
}