Ich habe zwei Apps, die mit demselben Kontotyp arbeiten. Ich möchte im Folgenden Seite gezeigt werden, wenn der Benutzer die zweite App für erstes Mal öffnet und ein Konto existiert:AuthToken kann nicht für ein benutzerdefiniertes Konto aus einer anderen App abgerufen werden
Aber nichts passiert, wenn ich diesen Code ausführen:
final AccountManagerFuture<Bundle> future = mAccountManager.getAuthToken(account, authTokenType, null, this, null, null);
new Thread(new Runnable() {
@Override
public void run() {
try {
Bundle bnd = future.getResult();
final String authtoken = bnd.getString(AccountManager.KEY_AUTHTOKEN);
showMessage((authtoken != null) ? "SUCCESS!\ntoken: " + authtoken : "FAIL");
Log.d("udinic", "GetToken Bundle is " + bnd);
} catch (Exception e) {
e.printStackTrace();
showMessage(e.getMessage());
}
}
}).start();
Der obige Code funktioniert einwandfrei, wenn ich es von der App aus starte, die den Authentifikator hat. Wenn ich stattdessen unter Code laufe, erzeugt das System eine Benachrichtigung, dass wenn ich darauf klicke, das obige Bild erscheint.
final AccountManagerFuture<Bundle> future = mAccountManager
.getAuthToken(account, authTokenType, null, true,
null, handler);
Durch Klicken auf die Schaltfläche "Allow" wird AuthToken
korrekt zurückgegeben. Ich möchte jedoch die Berechtigungserlaubnisseite (Bild oben) sehen, wenn Sie getAuthToken
aufrufen, nicht durch Klicken auf Benachrichtigung. Wie kann ich das machen?
Was ist der Wert von AUTH_TOKEN_TYPE_FULL_ACCESS? Ist es "Full Access", wird in meinem Fall beim erstmaligen Installieren der App dann über dem Bildschirm angezeigt, aber nachdem nichts passiert ist –