私は現在、デバイスの場所をサーバーに送信する必要があるアプリを開発しています。バックグラウンドエージェントと場所へのアクセスに関するMSDNの記事を読みました。これは今のところ機能します。設定されたMovementThresholdよりも遠い場所の変更をトリガーすると、現在地がサーバーに送信されます。
ただし、バックグラウンドエージェントのテストは複雑になる可能性があることを読みました。エミュレーターを使用すると、デバイスの場所を頻繁に簡単に変更できます。ただし、実際の電話では、ロケーションバックグラウンドサービスはアイドルランタイムで30分に制限されており、コマンドの実行には最大25秒しかかかりません。バックグラウンドエージェントは、ユーザーが電話の設定画面から無効にすることもできます。また、エージェントが2回以上連続してクラッシュすると、非アクティブ化されます。もう1つの制限は、非アクティブなバックグラウンドエージェントがアプリのライブタイルを更新しない場合、4時間後に停止することです。
私のアプリはライブタイルカウンターを更新するので、バックグラウンドエージェントはアプリから再起動せずに最大14日間実行されるはずです。昨日から今日までアプリをテストし、バックグラウンドエージェントが実行されていることを確認しました(設定から検索した場合)。上部のバーにも小さな点が表示されており、プログラムが電話の地理的位置にアクセスしていることを示しています。ただし、明らかな理由もなく、ドットが消えてバックグラウンドエージェントが殺されることがあります。
したがって、私の質問は次のとおりです。
- 電話や付属のデバッグ用ラップトップを持って移動することなく、実際のデバイスで地理的位置を確実にテストするにはどうすればよいですか?
- 前述のタイムアウトシナリオ(30分、4時間、14日)をタイムリーにテストするにはどうすればよいですか?
- バックグラウンドエージェントのこれら2つのクラッシュを確認するにはどうすればよいですか?