Tworzę aplikację i integruję w niej interfejs API Dysk Google Android. Mam główną działalność, a następnie fragment, który otwiera się, prowadząc do dysku Google. Jednakże, gdy próbuję się zalogować (nie ma znaczenia, jakie konto Gmail, wypróbowałem istniejące, tworząc nowe, cokolwiek) otrzymuję kod błędu ConnectionResult 17 SIGN_IN_FAILED. Aplikacja jest autoryzowana w konsoli programisty, a interfejs API Dysku jest włączony. Nie wiem, co jeszcze mogę zrobić.Dysk Google Android API ConnectionResult Error
Oto odpowiedni kod:
public class FileSharingFragment extends Fragment implements
GoogleApiClient.ConnectionCallbacks, GoogleApiClient.OnConnectionFailedListener {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (mGoogleApiClient == null) {
mGoogleApiClient = new GoogleApiClient.Builder(getActivity())
.addApi(Drive.API)
.addScope(Drive.SCOPE_FILE)
.addConnectionCallbacks(this)
.addOnConnectionFailedListener(this)
.build();
}
mGoogleApiClient.connect();
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View rootView = inflater.inflate(R.layout.fragment_file_sharing, container, false);
users = (TextView) rootView.findViewById(R.id.users);
getActivity().setTitle("Files");
return rootView;
}
@Override
public void onActivityResult(int requestCode, int resultCode,
Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == REQUEST_CODE_RESOLUTION && resultCode == Activity.RESULT_OK) {
mGoogleApiClient.connect();
}
}
@Override
public void onConnectionFailed(ConnectionResult result) {
Log.i(TAG, "GoogleApiClient connection failed: " + result.toString());
if (!result.hasResolution()) {
// show the localized error dialog.
GooglePlayServicesUtil.getErrorDialog(result.getErrorCode(), getActivity(), 0).show();
Log.i("file sharing fragment", "error code " + result.getErrorCode());
return;
}
try {
result.startResolutionForResult(getActivity(), REQUEST_CODE_RESOLUTION);
} catch (IntentSender.SendIntentException e) {
Log.e(TAG, "Exception while starting resolution activity", e);
}
}
i wezwać go z głównej działalności używam
Fragment fragment = FileSharingFragment.newInstance();
FragmentManager fragmentManager = getFragmentManager();
fragmentManager.beginTransaction().replace(R.id.content_frame, fragment).commit();
nie mogę dla życia mnie dowiedzieć się, dlaczego nie pozwoli mnie zaloguj się.
Czy wykonałeś wszystkie kroki poprawnie podane [tutaj] (https://developers.google.com/drive/android/auth#generate_the_signing_certificate_fingerprint_and_register_your_application)? – Exception
Przejdź przez [tę odpowiedź] (http://stackoverflow.com/questions/21280794/error-connectionresultstatuscode-internal-error-resolution-null#22738951). – Exception