2012-08-17 5 views
13

iOSでは、デバイスの時刻ではなく実際の時刻(UTC)を知る必要があります。言い換えれば、ユーザが時刻や日付を改ざんすることはできないはずです。iOSで実際の時刻と日付を調べる方法はありますか(デバイスの時刻ではなく)

ネットワーク接続が必要なものはすべて無効です(タイムサーバーへのアクセスはオプションではありません)。

私の知る限り、これを達成する2つの理論の方法があります:

  • GPS衛星信号からタイムスタンプを使用し

    問題が、この情報のことであるキャリアから現在時刻を取得iOSのAPIでは公開されていません。

    別の方法がありますか?

  • +0

    に設定されていますか?もしあなたが私の尋ねに気にしないなら。 –

    +0

    時刻登録。それは改ざん防止でなければなりません。 –

    +0

    あなたが見つけたオプションにかかわらず、電話が脱獄されていれば、すべての賭けはオフになっています。 –

    答えて

    1

    NSTimeZoneにsecondsFromGMTForDate:とsecondFromGMTを見ることができます。デバイスの時刻が変更されたときにGMTオフセットが増減すると、タイムスタンプをGMTに修正する方法が提供されます(おそらくUTCに変換されます)。

    +1

    そのAPIは引き続き(ユーザが設定した)デバイスのクロックを使用します。実際のUTC時間を決定する方法はありません。 –

    2

    時間情報にアクセスする実際のデバイスに依存するため、(CoreLocationからGPSデータを取得して時間情報にアクセスすることを含む)ほとんどの解決策には欠陥があります。タイムサーバーに接続する必要があります(NTPサーバーを確認することをお勧めします)。私はコアテレフォニーフレームワークを見ていて、ネットワーク時間を提供するものは何も見つかりませんでした。バグレポートを記入して、時間を含めるためにクラスの1つを展開するようAppleに依頼したいかもしれません。

    0

    あなたは、生のGPSデータやlocationManager:didUpdateLocationsでCLLocationのタイムスタンププロパティに取得することはできません。なぜ、この正確な時間は、あなたのプロジェクトのために非常に重要であるだけで好奇心から、システムクロック

    関連する問題