エンタープライズ アプリケーションを開発しています。電話は Wifi ルーターに接続されています。目的は、電話が安全なエリアの外に移動した場合にアラームをトリガーすることです..(建物の外)iPhoneが常に建物の中にあるかどうかを確認する最良の方法は何ですか.
私たちが試したオプションのいくつかは
1. Wifi (wifi ネットワークへの継続的な ping) を使用して、アラームをトリガーしない場合。2.座標が変化した場合(GPSを使用)
これを達成するための他の手段はありますか。
iOS 4 の位置情報サービス (バックグラウンド位置情報機能) を使用して、電話がいつ別の場所に移動したかを判断できます。
それはあなたが何をしたいかによります。iPhoneユーザーに移動することを知らせるだけで、位置情報サービスを使用するだけで十分です。
ただし、すべてのデバイスが範囲内にあることを確認するサーバーが必要な場合は、バックグラウンド状態からの通知なしにアプリケーションが一時停止される可能性があるため、より複雑になります。つまり、アプリケーションが終了した瞬間を捉えて適切なアクションを実行できない場合があります。したがって、この場合、サーバーにpingを実行するようなハートビートシステムが必要になります。
位置情報サービスを使用するという @indragie のアイデアは良いものです。WIFI SID が変更されないことが確実な場合は、iPhone が現在関連付けられているアクセス ポイントを調べることができます。ping を実行する場合は、システム サービスに依存しないようにし、エンタープライズ サーバーに対して定期的に HTTP クエリを発行することをお勧めします。その後、サーバーは、(さまざまなメトリックから) 受け入れ可能なアクセス ポイントを宣言するポリシー言語を持つことができます。これは、人々が iPhone を家に持ち帰れるように設定されている可能性があります。
WiFi に依存していて、デバイスが WiFi ネットワークに接続されていない場合、携帯電話はその場所を見つけることができないため、GPS が最善の策です。
ここで、位置認識機能に関する Apple のドキュメントを確認してくださいhttp://developer.apple.com/library/ios/#documentation/UserExperience/Conceptual/LocationAwarenessPG/CoreLocation/CoreLocation.html
バックグラウンドで「重要な」または標準的な場所の変更を追跡することができます。 #//apple_ref/doc/uid/TP40007072-CH5
[編集して含める] これもあなたに興味があるかもしれません - http://longweekendmobile.com/2010/07/22/iphone-background-gps-accurate-to-500-meters-not-enough-for-foot-トラフィック/