So widerrufen Sie die Berechtigung, die meine App vom google gmail AccountManager.getAuthToken (

8

Erstellt eine Test-App mit Eclipse, um die authToken von einem meiner Google E-Mail-Konten auf meinem Gerät zu erhalten.

Nachdem ich dies ausgeführt hatte, wurde ich mit dem Zugriffserlaubnis-Dialog aufgefordert, in dem ich den Zugriff erlauben wähle:

%Vor%

Ich wollte einen Auswahldialog erstellen, der ab API8 funktioniert und wo der Benutzer auswählen kann Was für ein Google-Konto er mir erlaubt. Um dies zu tun, muss ich die Erlaubnis widerrufen, den Bildschirm erneut zu sehen.

Sollte ich meine Test-App auf dieser Seite sehen oder nicht?
Autorisierter Zugriff auf Ihr Google-Konto

Ich habe nach einer Möglichkeit gesucht, die Berechtigung zu widerrufen, und funktioniert nicht ..
Das einzige, was funktioniert, ist ein neues App-Projekt zu erstellen.

UPDATE 2013
Verwenden Sie den Google Play-Dienst GCM und das funktioniert ok

    
Erik 04.11.2012, 21:11
quelle

3 Antworten

8

In Bezug auf die Seite " Autorisierter Zugriff auf Ihr Google-Konto " wird Ihre Seite nicht angezeigt App dort als diese Erlaubnis ist ein Gerät lokale Erlaubnis in einer Datenbank auf dem Telefon gespeichert.

Es scheint nicht möglich zu sein, diese Erlaubnis auf einfache Weise zu widerrufen. Ich habe einige Möglichkeiten gefunden, um den Dialog erneut zu starten, aber keine sind ideal. Bei einigen dieser Lösungen wird nicht genau der gleiche Dialog angezeigt, aber je nach dem, was Sie tun möchten, ist er nahe genug für Testzwecke:

Intern getAuthToken verfolgt, ob der Zugriff gewährt wurde oder ob die UID der Anwendung nicht verwendet wird. Wenn Sie Android also dazu zwingen können, Ihrer App eine neue UID zu geben oder sie zu erzwingen, die Datenbank mit bestimmten Grants zu löschen, sollte der Dialog erneut angezeigt werden. Hier sind einige Lösungen, die andere sagen, dass sie für sie arbeiten, aber das funktioniert nicht für mich (vielleicht hängt es davon ab, welches Telefon du verwendest?):

Als Randnotiz sollten Sie als Berechtigungen für den Zugriff auf Google-Authentifizierungs-Tokens widerrufen internes Android Methoden zum Entziehen des Zugriffs, aber diese sind nicht über die öffentliche API zugänglich.

    
nibarius 28.11.2012, 09:15
quelle
2

Es gibt zwei Fälle, die Sie beachten müssen:

  1. Serverseitige Berechtigung
  2. Android Account Manager (Geräteseite) Autorisierung

Fall 1: Die Sperrung der Server-Seite für Google-Konten kann erfolgen unter: Ссылка

Sie müssen sich nur mit dem entsprechenden Google-Konto anmelden und die App / Website widerrufen

Fall 2: Wenn auf Ihrem Android-Gerät ein Bildschirm angezeigt wird, auf dem beispielsweise Folgendes steht: "Anwendung möchte auf Ihr Google-Konto zugreifen ... zulassen / ablehnen?", Handelt es sich um eine Autorisierung vom Typ Account Manager, bei der Sie die sqlite3-Datenbank ändern müssen Telefon, um die Anwendung zu widerrufen (nicht so trivial wie in Fall 1 und dies erfordert root Zugriff auf Ihr Telefon):

ich. Kopieren Sie zuerst die Datenbank und die Journaldatei (accounts.db und accounts.db-journal) an einen anderen Ort (z. B. auf Ihre SD-Karte oder auf einen Computer). Die Datenbankdateien können in diesem Verzeichnis auf Ihrem Android-Gerät gefunden werden:

%Vor%

ii. Sie benötigen jetzt einen SQLite3-Editor. Ich habe Sqlite Debugger aus dem Google Play Store verwendet. Alternativ können Sie sqlite3-Binärdateien von Ссылка verwenden und dies auf einem Computer tun.

iii. Sie müssen den Editor verwenden, um bestimmte Einträge in der "Extras" -Tabelle der accounts.db-Datenbank zu entfernen. Vielleicht möchten Sie ein kurzes Tutorial über sqlite-Befehle machen, aber hier sind ein paar Beispiele und "SQLite Debugger" macht das leicht zu erlernen:

Öffnen Sie zuerst die Datei accounts.db im Editor

Um alle Zeilen in der Tabelle "Extras" aufzulisten, können Sie den folgenden Befehl verwenden:

%Vor%

Eine bessere Idee wäre, nur Zeilen in der Tabelle "Extras" aufzulisten, die der Anwendung entsprechen, die Sie widerrufen möchten. Wenn beispielsweise "com.someapp" der Name Ihrer App ist, könnten Sie den folgenden Befehl verwenden:

%Vor%

Sie sollten eine ähnliche Ausgabe erhalten:

%Vor%

Notieren Sie sich die ID-Nummern, die Sie aus der obigen Ausgabe löschen möchten (d. h. die Zeilen, die der App entsprechen, die Sie widerrufen möchten), und löschen Sie dann diese Zeilen mit den folgenden Befehlen:

%Vor%

Kopieren Sie die Datenbank und die Journaldatei an ihren ursprünglichen Speicherort zurück. Stellen Sie sicher, dass Sie die Berechtigungen und das Eigentum auf das Original zurücksetzen. Lesen / Schreiben nur für Besitzer und Gruppe und Eigentümer und Gruppenbesitzer sind beide "System". Diese Operation erfordert Root-Zugriff!

Starten Sie Ihr Gerät neu und Sie sollten die Berechtigung für die App widerrufen haben. Sie könnten dies testen, indem Sie die App bitten, die Autorisierung erneut zu beantragen. Wenn Sie auf dem Bildschirm aufgefordert werden, die App zu autorisieren ("Anwendung möchte auf Ihr Google-Konto zugreifen ... zulassen / ablehnen?), Haben Sie die App erfolgreich widerrufen.

Referenzen:

  1. Ссылка
  2. Ссылка
moo 28.01.2014 06:20
quelle
1

Das Deinstallieren und Neustarten des Geräts war die Antwort.
Ich musste es einige Zeit vor dem Neustart geben.

Update ... Ich muss sagen, das funktioniert nur manchmal.

    
Erik 28.11.2012 06:18
quelle

Tags und Links