android - Google Drive Api 账户授权

标签 android google-drive-api google-account

我正在开发一个 android 应用程序,它有可能提供大量统计信息。我想将这些数据保存在我的谷歌驱动器上以供日后分析。

但是,我是 Google API 的新手,几乎不知道如何以编程方式授权我的帐户。这是我目前所拥有的。

private static Uri driveUri;
private static Drive service;
private GoogleAccountCredential credential;
private Account driveAccount;

//      AccountManager accManager = 
//              (AccountManager) getSystemService(Context.ACCOUNT_SERVICE);
//      accManager.setUserData(driveAccount, ???, ???)



    credential = GoogleAccountCredential.usingOAuth2(this, DriveScopes.DRIVE);
    credential.setSelectedAccountName("myaccount@gmail.com");

    service = getDriveService(credential);

public class UploadToDrive extends AsyncTask<String, Void, String> {

    @Override
    protected String doInBackground(String... arg0) {
        // TODO Auto-generated method stub
        String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss", Locale.US).format(new Date());
        File sdcard = new File(Environment.getExternalStorageDirectory().getPath());
        File fileAnalytics = null;
        try {
            fileAnalytics = File.createTempFile("Sessions" + File.separator + "session_" + timeStamp, ".txt", sdcard);
        } catch (IOException e2) {
            // TODO Auto-generated catch block
            e2.printStackTrace();
        }

        PrintStream ps = null;
        try {
            ps = new PrintStream(fileAnalytics);
        } catch (FileNotFoundException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        }
        ps.println("Count: " + count);
        ps.println("Time: " + (System.currentTimeMillis() - startTime));
        ps.close();
        FileContent content = new FileContent("text/plain", fileAnalytics);

        com.google.api.services.drive.model.File body = new com.google.api.services.drive.model.File();
        body.setTitle(fileAnalytics.getName());
        body.setMimeType("text/plain");


        try {
            service.files().insert(body, content);
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        return null;
    }

    @Override
    protected void onProgressUpdate(Void... values) {
        // TODO Auto-generated method stub
        super.onProgressUpdate(values);
    }


}

代码成功运行,文件已在设备上创建,但我想将其发送到我的谷歌驱动器。

我认为主要问题是我不知道帐户名称 凭据应该是什么。我有一种感觉,它不是“myacc@gmail.com”。有什么办法可以获得我自己的谷歌帐户的帐户名称字符串吗?

最佳答案

问题似乎是 Google Drive、Dropbox 和其他云服务没有内置支持访问您自己的帐户。

即使我确实获得了我的帐户 key ,它也会每 15 分钟更改一次!

我建议建立一个网站并使用 FTP 上传文件。

关于android - Google Drive Api 账户授权,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14821549/

相关文章:

Android Espresso : cannot resolve symbol AndroidJUnit4. 类

java - Android CardView布局截图

android - 如何使用 Node 服务器验证 Android Google 登录

javascript - 使用脚本读取文件

google-apps-script - 如何从云端硬盘中的jpeg文件中提取EXIF数据

java - 如果您不使用 Google 帐户进行身份验证,GAE/Java 是否提供暴力破解保护?

android - 如何授予对关联/辅助 Google 帐户的访问权限

c# - 如何在我的 Mono for Android 项目中获取 Google 提供的 Android.Resource.Layout 引用

android - 如何让我的 CountDownTimer 在倒计时结束后重置?

google-apps-script - 尝试自动打开由脚本创建的文档