いくつかのアカウントのRESULT_CANCELEDを返します。私は私のMainActivity内部フラグメントでGoogleドライブのAPIを実装しました。これを行うためにGoogleドライブAPIのAndroidアカウントセレクタは、常に私はアプリのストレージフォルダ内のJSONファイルを保存するために、私のAndroidアプリにGoogleドライブのAPIを統合しています
。
私はこのコードを実行すると、予想通り、それは、SIGN_IN_REQUIREDコードでonConnectionFailed方法を打ちます。私はstartResolutionForResultを実行すると、アカウントピッカーが表示されます。
@Override
public void onConnectionFailed(ConnectionResult connectionResult) {
Log.i(TAG, "GoogleApiClient connection failed: " + connectionResult.toString());
if (connectionResult.hasResolution()) {
if(!mConnectionResolutionInProgress)
{
try {
mConnectionResolutionInProgress = true;
connectionResult.startResolutionForResult(getActivity(), REQUEST_CODE_RESOLUTION);
} catch (IntentSender.SendIntentException e) {
// Unable to resolve, message user appropriately
showMessage("There was an issue connecting to Google Drive services.");
}
}
else
{
mConnectionResolutionInProgress = false;
showMessage("Canceling export/import action");
}
}
else
{
mConnectionResolutionInProgress = false;
GooglePlayServicesUtil.getErrorDialog(connectionResult.getErrorCode(), getActivity(), 0).show();
}
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if(requestCode == REQUEST_CODE_RESOLUTION)
{
mConnectionResolutionInProgress = false;
if(resultCode == Activity.RESULT_OK)
{
if(!mGoogleApiClient.isConnected() && !mGoogleApiClient.isConnecting())
{
ConnectToGoogleDrive();
}
}
}
}
private void ConnectToGoogleDrive()
{
if(mGoogleApiClient == null)
{
mGoogleApiClient = new GoogleApiClient.Builder(getActivity())
.addApi(Drive.API)
.addScope(Drive.SCOPE_FILE)
.addScope(Drive.SCOPE_APPFOLDER)
.addConnectionCallbacks(this)
.addOnConnectionFailedListener(this)
.build();
}
mGoogleApiClient.connect();
}
奇妙なことは、私の個人的なアカウント(と自分の仕事のアカウント)でうまくいきます。私は自分のアカウントをクリックし、ダイアログが消えて、それが権限ダイアログに置き換えられました。私がそれを受け入れるならば、操作は完全に続く。 onActivityResultはresultCode RESULT_OKを返します。
私は誰も他人のアカウントを使用している場合は、アカウントピッカーが消え、私は私のエラー例1を押してください。私がデバッグした場合、resultCodeは実際のRESULT_CANCELEDであることがわかります。
私は違いが何であるかが表示されません。私のコードはかなり標準的なようです。
アイデア?
Googleアカウント(GmailやGoogle Appsドメインなど)を使用していますか? google appsドメインを使用している場合は、そのユーザーがドライブを有効にしているかどうかを確認できますか? – Shailendra
あなたは既にGoogleドライブを使用していることを確認することで確認できますか?それは私が失敗したテストした両方の場合に当てはまります。 –