1

アプリでカスタム アカウント タイプを作成しようとして、10 時間連続で使用しています。

私の参照はここにあります: http://docs.huihoo.com/android/4.2/training/id-auth/custom_auth.html

Android Developers の例はこちら.

私の手順は次のとおりです。

  1. Authenticator7 つのメソッドを拡張AbstractAccountAuthenticatorおよびオーバーライドするクラスを作成します。
  2. クラスを初期化するクラスAuthenticatorServiceを拡張するクラスを作成しますServiceAuthenticator
  3. 資格情報を入力するためのユーザー インターフェイスをAuthenticatorActivity拡張し、作成する場所を作成します。AccountAuthenticatorActivity
  4. サービス、権限、およびアクティビティを追加しますAndroidManifest.xml
  5. @xml/authenticatorファイルを作成して情報を設定する

すべてがうまくできたので、あとはサービスを開始する方法を見つけるだけです。そこで、別のアクティビティを作成し、onCreate()メソッドで開始しました。

アプリをテストする時間です。エミュレーター (API16) で実行することにしました。が起動し、MainActivity実行中のプロセスでアプリ プロセスとアプリ サービスを確認できます。

だから私は資格情報を挿入するために DevTools/AccountsTester に行きます...しかし、ここには何もありません。デフォルトでは企業アプリとメール アプリのみです。エミュレータのせいかと思い、GS3でアカウントを追加してみましたが同じでした。

私のlogcatにはエラーはなく、サービスが実行されていることがわかります(Logサービスクラスのクラスを使用)。

私のコードは 2 番目の参照とまったく同じです。true代わりに単純なものを返すことでサーバー要求を変更するだけなので、私の場合、サービスは送信された資格情報に関する応答を取得するために外部サーバーを使用しません。

仕事で見逃したステップはありますか?

4

1 に答える 1

1

私はついに小さな間違いを見つけました。Android Studio を使用して新しい XML リソース ファイル (この例では、authenticator.xml ファイル) を作成すると、一部のコードが自動生成されます。

<?xml version="1.0" encoding="utf-8"?>
<ressources>

</ressources>

私の間違いは、account-authenticatiorアイテムressourcesをルートにするのではなく、に挿入することでした。

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

私のようにそれを見逃す可能性のある人のために、この答えを聞かせてください。は自動起動されるため、のstartService()メソッドも削除します。MainActivityAuthenticatorService

于 2014-08-21T07:50:25.283 に答える