現在、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 にエラー メッセージが表示されません。
ご協力いただきありがとうございます。