如何将文件从Google云端硬盘上传到我的应用?

时间:2014-09-05 08:56:39

标签: android android-intent google-drive-api

您好我的应用程序中我需要通过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"));
}

1 个答案:

答案 0 :(得分:0)

您可以使用Drive Android API执行此操作。请参阅creating filesworking with file contents.