2013-06-03 12 views
5

Wenn Benutzer ein neues Konto in meiner App erstellen, erstelle ich ein neues Konto in Android Account Manager. So Benutzer kann sein Konto in den Einstellungen zu sehen-> Konten und synch ...Entfernen Sie meine App von Android-Konto-Manager "Konto hinzufügen"

So Frage: ist es möglich, meine App aus der Liste zu entfernen, wenn Benutzer auf "Add new account" in Konten und synchronisieren? Der Nutzer sollte meine App nicht in dieser Liste sehen, aber trotzdem ein Konto in meiner App erstellen.

PS. Ich möchte keine Aktivität öffnen, wenn ich auf "Konto hinzufügen" klicke. Ich möchte meinen App-Punkt in der Liste nicht anzeigen.

Ich habe in meinem Manifest:

<service 
     android:name="myPackage.authenticator.AuthenticationService" 
     android:exported="false" > 
     <intent-filter> 
      <action android:name="android.accounts.AccountAuthenticator" /> 
     </intent-filter> 

     <meta-data 
      android:name="android.accounts.AccountAuthenticator" 
      android:resource="@xml/authenticator" /> 
    </service> 

Und mein Authentifikator:

<?xml version="1.0" encoding="utf-8"?> 
<account-authenticator xmlns:android="http://schemas.android.com/apk/res/android" 
android:accountType="myType" 
android:icon="@drawable/ic_launcher" 
android:label="@string/app_name" 
android:smallIcon="@drawable/ic_launcher" /> 

Antwort

3

Soweit ich verstehe, wollen Sie nicht Benutzer mehrere Konten Ihres Dienstes in einem Gerät haben. Ich sehe zwei Optionen hier:

  1. Verwalten, wenn der Benutzer bereits ein Konto hinzugefügt hat. Wenn Nutzer zu Einstellungen> Konten> Konto hinzufügen navigieren und Ihren Dienst auswählen, prüfen Sie, ob auf dem Gerät ein registriertes Konto vorhanden ist. Wenn dies der Fall ist, lehnen Sie die neue Authentifizierung ab.

  2. Deaktivieren Sie "myPackage.authenticator.AuthenticationService" direkt nachdem Benutzer ihr erstes Konto hinzugefügt (möglicherweise nicht sicher), damit das System (App Einstellungen) Ihren Dienst nicht finden kann, wenn es für Authentifizierungsanbieter analysiert.

+0

Thx für die Antwort. Aber ich kann keine Möglichkeiten finden, diesen Dienst zu stoppen. Irgendwelche Ideen? – Kulibin

+0

Sie meinen "wie zu deaktivieren"? Bitte beachten Sie ['PackageManager.setComponentEnabledSetting()'] (https://developer.android.com/reference/android/content/pm/PackageManager.html) – ozbek

+0

Ich habe es überprüft. Und was ich bekam: Ich erstelle einen neuen Account und deaktiviere meinen AuthService. Dann (wenn ich es brauche) aktiviere ich diesen Dienst und möchte meinen gespeicherten Account erhalten. Aber dieses Konto ist nicht verfügbar, es wurde entfernt, wenn ich den Dienst deaktiviere. Also kann ich meinen Dienst nicht deaktivieren. Und wahrscheinlich ist es unmöglich zu tun, was ich will ... Irgendwie, danke für Hilfe. – Kulibin