0

私は現在、デバイスの場所をサーバーに送信する必要があるアプリを開発しています。バックグラウンドエージェントと場所へのアクセスに関するMSDNの記事を読みました。これは今のところ機能します。設定されたMovementThresholdよりも遠い場所の変更をトリガーすると、現在地がサーバーに送信されます。

ただし、バックグラウンドエージェントのテストは複雑になる可能性があることを読みました。エミュレーターを使用すると、デバイスの場所を頻繁に簡単に変更できます。ただし、実際の電話では、ロケーションバックグラウンドサービスはアイドルランタイムで30分に制限されており、コマンドの実行には最大25秒しかかかりません。バックグラウンドエージェントは、ユーザーが電話の設定画面から無効にすることもできます。また、エージェントが2回以上連続してクラッシュすると、非アクティブ化されます。もう1つの制限は、非アクティブなバックグラウンドエージェントがアプリのライブタイルを更新しない場合、4時間後に停止することです。

私のアプリはライブタイルカウンターを更新するので、バックグラウンドエージェントはアプリから再起動せずに最大14日間実行されるはずです。昨日から今日までアプリをテストし、バックグラウンドエージェントが実行されていることを確認しました(設定から検索した場合)。上部のバーにも小さな点が表示されており、プログラムが電話の地理的位置にアクセスしていることを示しています。ただし、明らかな理由もなく、ドットが消えてバックグラウンドエージェントが殺されることがあります。

したがって、私の質問は次のとおりです。

  • 電話や付属のデバッグ用ラップトップを持って移動することなく、実際のデバイスで地理的位置を確実にテストするにはどうすればよいですか?
  • 前述のタイムアウトシナリオ(30分、4時間、14日)をタイムリーにテストするにはどうすればよいですか?
  • バックグラウンドエージェントのこれら2つのクラッシュを確認するにはどうすればよいですか?
4

1 に答える 1

0

WP8 がバックグラウンド エージェントを定義する方法について、いくつかの誤解をしたと思います。位置情報の新しい WP8 バックグラウンド エージェントは、アプリの実行中にのみアクティブになります。これは、戻るボタンでアプリを閉じてはならないことを意味します。ただし、Windowsボタンまたは長いホールドバックボタンでホーム画面に切り替えて、マルチタスクから他のアプリにアクセスできます.

私の質問について:

  • 電話と接続されたデバッグ用ラップトップを持って移動する必要なしに、実際のデバイスで信頼できる地理的位置をテストするにはどうすればよいですか?
  • 前述のタイムアウト シナリオ (30 分、4 時間、14 日) をタイムリーにテストするにはどうすればよいですか?

私はまだ適切な解決策を持っていません。実際のデバイスでのテストと、制約のテストに必要な時間に制限があります。

  • バックグラウンド エージェントのこれら 2 つのクラッシュを確認するにはどうすればよいですか?

これをプログラムで確認する方法がわかりません。ユーザーは、電話の設定のバックグラウンド タスクのリストで、このクラッシュしたアプリをブロックされたアプリとして見ることができるかもしれません。上記のリンクを使用して、このリストからブロックされたアプリを検出する方法があるはずです。

私のプロジェクトでは、画面がロックされていたり、アプリが開いていなくても動作するロケーション バックグラウンド エージェントが必要でした。したがって、サーバーに送信できるように、PeriodicAgent を使用して 30 分ごとに場所を要求しました。ただし、このバックグラウンド エージェントはアプリケーションの設定やクラスにアクセスできないことに注意してください (フォアグラウンド アプリとバックグラウンド エージェント間の通信を参照)。

于 2013-03-27T11:23:01.947 に答える