2013-04-20 4 views
5

Es gibt ein Beispiel für die Verwendung der Drive API https://developers.google.com/drive/quickstart-android. Es funktioniert gut, aber ich habe einige Probleme beim Versuch, das Hochladen von Datei zu GDrive vom Hintergrunddienst zu implementieren.Verwenden der Android Drive API vom Hintergrunddienst

In allen Beispielen, die ich gefunden habe, im Fall, wenn wir UserRecoverableAuthException erhalten, müssen wir neue Aktivität mit Intent von dieser Ausnahme (UserRecoverableAuthException#getIntent()) starten, um Benutzer zur OAuth2-Berechtigungsseite zu bringen.

Wenn wir dies von Aktivität tun, verwenden wir einfach startActivityForResult, und als Ergebnis können wir onActivityResult verwenden, um zu wissen, dass der Benutzer seine Interaktion beendet hat und wir es erneut versuchen können.

Aber wenn ich mit Drive API von Service arbeiten will, und es Benutzerinteraktion benötigt, kann ich nur Benachrichtigung an Benutzer mit PendingIntent bereitstellen. Und es gibt keinen Callback für mich zu wissen, wann Benutzer OAuth2 Erlaubnis Seite schließt.

Können Sie bitte einen Lösungsweg vorschlagen? Vielleicht vermisse ich etwas? Vielleicht gibt es eine Sendung, die ich fangen muss oder etc?

Vielen Dank.

Antwort

-2

Starten Sie eine Aktivität aus der Benachrichtigung, in der Sie das Aktivitätsergebnis der Berechtigungsaktivität bearbeiten. Behandeln Sie das Ergebnis und beenden Sie optional die Aktivität.

@Override 
protected void onActivityResult(final int requestCode, final int resultCode, final Intent data) { 
    if (resultCode == Activity.RESULT_OK) { 
    // permission is given 
    finish(); 
    } else { 
    or show error 
    } 
}