Android Google Drive Api的帐户授权

Android Google Drive Api的帐户授权,android,google-drive-api,google-account,Android,Google Drive Api,Google Account,我正在开发一个android应用程序,它有可能提供大量的统计信息。我想把这些数据保存在我的谷歌硬盘上,以便以后分析 然而,我是谷歌API的新手,几乎不知道如何通过编程方式授权我的帐户。这是我到目前为止所拥有的 private static Uri driveUri; private static Drive service; private GoogleAccountCredential credential; private Account driveAccount; // Acc

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

然而,我是谷歌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);
    }


}
private静态Uri-driveUri;
专用静态驱动器服务;
私人GoogleAccountCredential凭证;
私人账户;
//AccountManager accManager=
//(AccountManager)getSystemService(Context.ACCOUNT\u服务);
//accManager.setUserData(driveAccount、、?)
credential=GoogleAccountCredential.UsingAuth2(这是DriveScopes.DRIVE);
凭证.setSelectedAccountName(“myaccount@gmail.com");
服务=getDriveService(凭证);
公共类UploadToDrive扩展异步任务{
@凌驾
受保护的字符串doInBackground(字符串…arg0){
//TODO自动生成的方法存根
String timeStamp=new SimpleDateFormat(“yyyyMMdd_HHmmss”,Locale.US).format(new Date());
File sdcard=新文件(Environment.getExternalStorageDirectory().getPath());
文件fileAnalytics=null;
试一试{
fileAnalytics=File.createTempFile(“会话”+File.separator+“会话”+时间戳,.txt”,SD卡);
}捕获(IOE2异常){
//TODO自动生成的捕捉块
e2.printStackTrace();
}
PrintStream ps=null;
试一试{
ps=新的打印流(文件分析);
}捕获(FileNotFoundException e1){
//TODO自动生成的捕捉块
e1.printStackTrace();
}
ps.println(“计数:”+Count);
ps.println(“时间:”+(System.currentTimeMillis()-startTime));
ps.close();
FileContent=新的FileContent(“文本/普通”,fileAnalytics);
com.google.api.services.drive.model.File body=new com.google.api.services.drive.model.File();
setTitle(fileAnalytics.getName());
body.setMimeType(“文本/普通”);
试一试{
service.files().insert(主体、内容);
}捕获(IOE异常){
//TODO自动生成的捕捉块
e、 printStackTrace();
}
返回null;
}
@凌驾
受保护的void onProgressUpdate(void…值){
//TODO自动生成的方法存根
super.onProgressUpdate(值);
}
}
代码运行成功,文件在设备上创建,但我想将其发送到我的谷歌硬盘


我认为主要的问题是我不知道帐户名应该是什么。我有一种感觉,它不是“myacc@gmail.com". 我有没有办法为我自己的谷歌账户获取账户名称字符串

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

即使我得到了我的帐户密钥,它也会每15分钟改变一次

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