Ich entwickle eine Anwendung, die für bestimmte Optionen ein Google-Konto benötigt. Die Optionen sind deaktiviert, wenn kein Konto gefunden wird, aber ich präsentiere dem Benutzer, dass er einen hinzufügt, indem er über ein Popup fragt. Wenn der Benutzer auf "Ja" klickt, sollte die Aktivität starten. Es funktioniert gut, um die globale "Add account" -Seite anzuzeigen, aber ich möchte das für zusätzlichen Schritt nicht aufgerufenen überspringen. Warum sollte jemand jemandem die Möglichkeit geben, ein Exchange-Konto hinzuzufügen, wenn ein Google-Konto benötigt wird? Das ist einfach verwirrend. Daher möchte ich die neue Einrichtungsseite für Google-Konten als Standard festlegen.Programmgesteuertes Starten der Aktivität "Google-Konto hinzufügen" unter Android
Java
try {
Intent intent = new Intent();
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setClassName("com.google.android.gsf", "com.google.android.gsf.login.AccountIntroActivity");
//if(getApplicationContext().getPackageManager().resolveActivity(intent, PackageManager.MATCH_DEFAULT_ONLY) != null) {
getApplicationContext().startActivity(intent);
//} else {
//getApplicationContext().startActivity(new Intent(Settings.ACTION_ADD_ACCOUNT).addFlags(Intent.FLAG_ACTIVITY_NEW_TASK));
//}
} catch (ActivityNotFoundException e) {
e.printStackTrace();
}
Als ich dies ausführen, wird die folgende exeception geworfen:
05-29 18: 24: 50,741: W/System.err (10875): android.content .ActivityNotFoundException: Die explizite Aktivitätsklasse konnte nicht gefunden werden {com.google.android.gsf/com.google.android.gsf.login.AccountIntroActivity}; Hast du diese Aktivität in deiner AndroidManifest.xml deklariert?
AndroidManifest.xml
<activity
android:name="com.google.android.gsf.login.AccountIntroActivity"/>
FRAGE: was ich hier fehlt?
EDIT:
ich eine andere Art und Weise mit addAccount versucht, dies nicht funktioniert, passiert nichts, keine Fehler geworfen, keine neue Aktivität beginnt das Google-Konto hinzuzufügen. Übrigens ist der gesamte try catch-Block in der ursprünglichen Version in einem AlertDialog/Listener.
AccountManager acm = AccountManager.get();
acm.addAccount("com.google", null, null, null, null, null, null);
Ich fühle mich wie ein d ***, aber ich denke, ich muss meine eigene Antwort als beantwortet jetzt beantworten. Vielen Dank für Ihre Geduld und Hilfe @Nikolay Elenkov! – slinden77
Ist "thisclassname" eine tatsächliche Klasse? –