2

現在、Android アプリケーションに取り組んでおり、Google ドライブを統合しようとしています。アカウント ピッカーに問題があります。アカウントが選択されて onActivityResult 関数に返されると、resultCode は -1 になります。これは、成功したことを意味する 0 である必要があると思います。

以下は、アカウントピッカーを開く方法です

credential = GoogleAccountCredential.usingOAuth2(context, DriveScopes.DRIVE);
startActivityForResult(credential.newChooseAccountIntent(), REQUEST_ACCOUNT_PICKER

credentialはグローバル変数であるため、クラス全体がこの変数にアクセスできます。

以下は onActivityResult のコードです

else if (resultCode == REQUEST_ACCOUNT_PICKER)
{
    if (resultCode == RESULT_OK && intent != null && intent.getExtras() != null)
    {
    String accountName = intent.getStringExtra(AccountManager.KEY_ACCOUNT_NAME);
    SharedPreferences settings = context.getSharedPreferences("prefs", 0);
    SharedPreferences.Editor editor = settings.edit();
    editor.putString("google_drive_account_name", accountName);
    editor.putBoolean("drive_sync_upload_download_required", true);
    editor.commit();
    }
}

それはelse ifステートメントに問題なく入りますが、resultCodeがRESULT_OKに等しいかどうかをチェックすると、resultCodeが何らかの理由で-1に設定されているため、falseが返されます。-1 は何かが失敗したことを意味すると思いますが、logCat にエラー メッセージが表示されません。

ご協力いただきありがとうございます。

4

1 に答える 1

1

これを通過します:の値はRESULT_OKです-1

0のためですRESULT_CANCELLED

于 2013-03-23T16:28:04.150 に答える