2013-02-11 2 views
4

Я разрабатываю приложение для Android, которое может предоставить большое количество статистической информации. Я хочу сохранить эти данные на моем диске Google, чтобы их проанализировать позже.Авторизация учетной записи для Google Диска Api

Тем не менее, я новичок в Google apis и мало знаю, как авторизовать свою учетную запись программно. Вот что я до сих пор.

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("[email protected]"); 

    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); 
    } 


} 

Код запускается успешно, и файл создается на устройстве, но я хочу отправить его на свой Google-привод.

Я думаю, что основная проблема заключается в том, что я не знаю, что должно быть у учетной записи , имя. У меня такое ощущение, что это не «[email protected]». Есть ли способ получить строку имени учетной записи для моей учетной записи google?

ответ

0

Проблема заключается в том, что Google Диск, Dropbox и другие облачные службы не имеют поддержки для доступа к вашей собственной учетной записи.

И даже если я получил свой ключ учетной записи, он меняется каждые 15 минут!

Я предлагаю создать веб-сайт и использовать FTP для загрузки файлов.