4

大量の統計情報を提供する可能性のあるAndroidアプリケーションを開発しています。後で分析するために、このデータをGoogleドライブに保存したいと思います。

ただし、私は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);
    }


}

コードは正常に実行され、ファイルはデバイス上に作成されますが、Googleドライブに送信したいと思います。

主な問題は、アカウント名のクレデンシャルが何であるかわからないことだと思います。「myacc@gmail.com」ではないと感じています。自分のGoogleアカウントのアカウント名文字列を取得する方法はありますか?

4

1 に答える 1

0

問題は、Googleドライブ、Dropbox、およびその他のクラウドサービスに、自分のアカウントへのアクセスのサポートが組み込まれていないことのようです。

また、アカウントキーを取得した場合でも、15分ごとに変更されます。

Webサイトを設定し、FTPを使用してファイルをアップロードすることをお勧めします。

于 2013-03-14T01:10:18.107 に答える