問題タブ [android-syncadapter]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - Android用の独自の同期アダプター?
Android 2.0 のプレス リリースによると、新しいリリースでは同期アダプターがサポートされているため、電子メールとカレンダーは gmail と exchange としか同期できません。ただし、このような同期アダプターを作成する方法についてオンラインで入手できる情報はありません。誰かがそれを試し、いくつかのサンプルコードを利用できましたか?
android - インテントを処理するアクティビティが見つかりません{act=android.accounts.AccountAuthenticator}がありますが、
ユーザーが[アカウントと同期]で[アカウントの追加]を選択したとき、またはアプリケーションを使用したいがまだログインしていないときに、アプリケーションにログインアクティビティを表示させようとしています。SampleSyncAdapterの例をかなり厳密に実行しましたが、動作させることができず、代わりに次の例外を受け取ります。
No Activity found to handle Intent { act=android.accounts.AccountAuthenticator }
私の認証サービスには次のものが含まれています。
私のAndroidManifest.xml
:
私の主な活動:
私は両方を試してみました:
と:
呼び出しの前にstartActivity()
、しかしそれはまだその意図のための活動を見つけることができません。account&syncを介してアカウントを追加しようとすると、同じでアプリケーションがクラッシュしますActivityNotFoundException
。
私は何が間違っているのですか?
編集
私はc99のlast.fmアプリを調べました。これは、カスタムアクションを定義し、ではなくそのアクションに基づいてインテントを使用しandroid.accounts.AccountManager.ACTION_AUTHENTICATOR_INTENT
ます。それはより良いアプローチですか?Accounts&Syncで動作させる方法はありますか?
android - AndroidSyncAdapterのユースケース
私たちは現在何をしていますか?
Webサービス(RESTful)を使用して公開されるサーバー上に、構造化されたテキストデータがいくつかあります。私のアプリケーションは、このサーバーを定期的にポーリングして(AlarmManagerService)、データをフェッチしてローカルデータベース(sqlite)に保存します。また、ユーザーは事前に認証され、アクセスが許可されます。
質問:
SDKにはSyncAdapter/AccountManagerクラスがあり、上記の同期を実現するためにアプリケーションで使用できるかどうか疑問に思っていました。
はいの場合、このアダプターを使用してセットアップされた同期をサポートするには、バックエンドでどのような種類のインフラストラクチャが必要ですか?このアダプタの使用方法の詳細やその他の情報を提供する記事などへのリンクをいただければ幸いです。
android - Android SyncAdapter の使用方法を教えてください。
Android の同期ロジックを理解しようとしています。私が理解していないのはsyncadapter.xml
、Android SDK サンプル プロジェクト に含まれるファイルですSampleSyncAdapter
。SDK サンプルをダウンロードした場合は、次のフォルダーにあるはずです。
コンテンツ プロバイダーの権限は、文字列またはリソースへの参照である必要があります。コンテンツオーソリティとは正確には何com.android.contacts
ですか?ファイルの内容は次のとおりです (ライセンス情報とコメントなし、API レベル 16)。
java - ApacheのHttpClientを介してCouchdbで管理者を設定する方法(curlの例を指定)
布団は小さなモバイルデバイスでは非常に不快なので、AndroidでのCouchDBのセットアップを簡単に維持できるようにCouchDBGuiToolboxに取り組んでいます。
このために「org.apache.http.client。*」パッケージに固執したかったのですが、管理者をセットアップするまでは非常にうまく機能していました。
コマンドラインツール「curl」を使用すると、魅力のように機能します。
しかし、私はそれを「org.apache.http.client.methods.HttpPut()」メソッドに変換するのに大きな問題を抱え続けています。
助けていただければ幸いです。
android - Androidで「今すぐ同期」操作をコーディングするにはどうすればよいですか?
DB用の同期アダプターがあり、アプリケーション使用の特定の時点で、今すぐDBを同期する必要があります。同期時間をポップしたかのように同期アダプターをトリガーしてから、同期時間を再確立したいと思います(つまり、この「今すぐ同期」イベントから4時間)。
android - 同期アダプターを登録するandroid.content.SyncAdapterメタデータがないのはなぜですか?
SampleSyncAdapter に従っていますが、起動時に SyncAdapter が正しく構成されていないようです。メタデータを読み込もうとするとエラーが報告されます。どうすれば問題を切り分けることができますか? システムに正しく登録されている他のアカウントを確認できます。
ログキャット:
また、私の欠陥を指摘する方法でエラーを変更できるかどうかを確認するために、誤った構成を強制しようとしたことにも注意してください。残念ながら、設定ミスのほとんどは (プリ) コンパイラによって検出されます。
アンインストール/インストール後に、同期アダプターのサービス エントリの AndroidManifest.xml 内のメタデータ ノードに対応するこの logcat エントリを見つけることができました。私が調べている非常に重要な手がかりかもしれません。
android - ContentProvider のない SyncAdapter
サーバーと同期したいコンテンツに SyncAdapter を実装したいと考えています。そのためには、SyncAdapter XML プロパティ ファイルで指定した機関に登録された ContentProvider が必要なようです。
このコンテンツに電話の他の部分からアクセスできないようにするため、独自の ContentProvider を実装せず、個人的な実装を使用してこのコンテンツを保存しました。
ContentProvider を提供せずに SyncAdapter を使用して同期を提供できるかどうか知っていますか?
どうもありがとうございました。
android - 設定アクティビティを見つけようとすると、Androidアカウントと同期が再起動するのはなぜですか?
ランチャーカテゴリとして宣言できるアクティビティがあり、ホーム画面から問題なく起動します。ただし、同じアクティビティをSyncAdapterの設定アクティビティに接続し、[アカウントと同期]ページ-> MySyncAdapter->(アカウントリストにタッチ)から開くと、システムの致命的なエラー(電話の再起動)で中止されます。
その間、私のSyncAdapterは他の点で機能しています。
影響が発生した時点のログは次のとおりです。
これが私のマニフェストファイルからの抜粋です:
参照されているXMLリソースファイル(account_preferences.xml)を忘れてしまいました。これは、別のレベルの間接参照、つまりアクティビティの名前への参照を提供します。それを操作して、ログエントリをそれに応じて変更することができます。だから、それは解決策のヒントだと思います。ターゲットパッケージとターゲットクラスは連結されて、開始するアクティビティの名前を定義します。ログで気付いたのは、パス名にスラッシュ(/)が含まれているため、アクティビティが見つからないためだと思います。たとえば、パッケージから(.ui )を取り出してtarget-activityに入れると、パスの.uiの前にスラッシュが移動します。
account_preferences.xml:
ログスニペット:
android - 保留中のインテントがクラッシュするこのAndroidアラームはなぜですか?
次の同期操作をスケジュールするために使用される非常に単純なコードがあります。これは、AbstractThreadedSyncAdapterを拡張するSyncAdapter内で実行されているため、そのコンテキストを使用します。SyncAdapterのみを管理するBroadcastReceiver「MyService」に対して開始されたPendingIntent。
私はそれを24時間以内に繰り返すようにスケジュールしようとしています。
ログ出力: