独自のカスタム アカウントを作成しましたが、アカウントを追加してアプリで使用するのに問題なく動作しています。
アカウントの削除と追加ではなく、アカウント情報を編集できるようにしたいと考えています。私のアカウントには多くのフィールドがあり、いくつかは少し長くなる可能性があるため、削除と追加はかなり面倒です.
独自の PreferenceScreen を追加してこの基本を作成し、次の例に従って、アカウント認証 XML ファイルの android:accountPreferences を介して接続しました: AbstractAccountAuthenticator。
PreferenceScreen で、アカウントのユーザー データを入力するために使用されるアクティビティを開くインテントを定義します。
<PreferenceScreen
android:key="edit"
android:title="Edit Account Details"
android:summary="Change System ID, user name, password etc.">
<intent
android:action="my.app.accountmanager.UserCredentialsActivity.ACCOUNT_SETUP"
android:targetPackage="my.app.accountmanager"
android:targetClass="my.app.accountmanager.UserCredentialsActivity" />
</PreferenceScreen>
私の問題は、インテントでエクストラとして渡す方法、または設定/アカウントと同期で選択したアカウントのアカウント情報を見つける方法です。このカスタム アカウント タイプのアカウントは複数存在する可能性があるため、そのタイプのアカウントを検索することはできません。選択したアカウントのデータが必要です。
私の考えは、大まかに次の領域にありました。
- エクストラを追加するには、xml に何かを含めます。これがどのように可能になるかわかりません。
- インテントのターゲットを AccountAuthenticator クラスまたは認証サービスにしますが、データを編集したいことをどのように渡すのですか? AbstractAccountAuthenticator には updateCredentials メソッドがあり、データ入力アクティビティにインテントを含むバンドルを返すため、EDIT アクションなどを渡すことができれば、おそらく機能する可能性があります。
- アカウント データを使用して独自のインテントを作成するために、どこかで何らかのメソッドをオーバーライドします。
複数のアカウントを許可していませんが、Samsung アプリと Dropbox アプリの両方がアカウントと同期からこれを行うため、これが可能であることを願っています...