1

syncadapter の例に従って、AccountManager と同期アダプターを作成しました。同じアカウントで、異なる目的 (異なるサービスへのアクセス - 同期アダプターはそれらの 1 つを使用) のために 2 つの異なるタイプの認証トークンを使用したいと考えていました。

物事はうまくいきますが、1つのauthtokenタイプに対して(getauthtokenを介して)認証すると、それを保存するプロセスが他のauthtokenタイプを置き換えることがわかりました。前後に accounts.db ファイルを調べました。認証トークン タイプ「B」のトークンを取得するための呼び出しの前に、accounts.db の認証トークン テーブルに認証タイプ「A」の認証トークンがあります。呼び出し後、accounts.db の authtoken テーブルにはタイプ「B」の authtoken がありますが、「A」は削除されました。順序に関係なく、accountmanager サブシステムは、私のアカウント タイプのアカウントごとに 1 つ以上の認証トークンを保存していないようです。

複数の authtoken タイプがある場合、どこかの xml ファイルで特別に構成する必要があるものはありますか?

4

1 に答える 1

2

問題が見つかりました。認証/ログインが成功した結果として AccountManager.setPassword() を呼び出すと、アカウントのすべての認証トークンが無効になります。これは文書化されていない副作用であり、場合によっては意味があります。パスワードを無差別に同じ値に設定するソフトウェアは、誤って認証トークンを無効にします。

于 2014-09-15T02:02:21.250 に答える