4

WP8 には、アプリが試用状態にあるか、既に購入されているかを知るための LicenseInformation クラスがあります。

今私がやりたいことは、アプリを試用モードで 7 日間だけ動作させることです (その後期限切れになります)。

MSDN のドキュメントは、このトピックに関してやや誤解を招くようになっているため、それらを読んだ後にこれらの質問があります。

  1. LicenseInformation.ExpirationDate は私の目的には役に立ちませんか? 「この API は常に 9999 – 12 – 31 (ETERNITY_FILETIME_TIME) を返します。」試用ライセンス自体は無期限のようですが、これでよろしいですか?

  2. 代わりに LicenseInformation.IsActive を使用できますか? "ライセンスがない、有効期限が切れている、または取り消されている場合は、false を返すことがあります。 ", " IsTrial は、試用期間が終了した後でも true を返します。ただし、IsActive は、試用期間が終了すると false を返します。」有効期限?

ありがとうございました!

4

1 に答える 1

5
  1. はい、有効期限は常に DateTime.Max 値です。

  2. いいえ、これはあなたのニーズには十分ではありません。

試用版 API には、特定の制限時間後に有効期限を有効にするものはありません。この機能を自分で実装する必要があります。

7 日間の使用後に有効期限を実装するには、次の手順を実行する必要があります。

  • アプリを最初に使用した日付を記録します。
  • その後開始したときに、まだ試用モードであるかどうか、および最初の使用から 7 日以上経過しているかどうかを確認します。
  • これらのテストの両方が true を返した場合は、トライアルの有効期限が切れていると見なし、アプリで適切なアクションを実行します。

分離ストレージで最初に使用した日時を追跡できますが、ユーザーがアンインストールしてから再インストールすると、試用版を再度実行できることに注意してください。

別の方法として、デバイス ID と初回使用日時を独自の Web サーバーに保存する必要があります。次に、ユーザーがデータをリセットできないため、そのデータをチェックします。
これの欠点は、サーバーを実行する必要があることと、アプリがサーバーに接続できない場合にどうするかを決定することです。(ネットワーク アクセスがないか、サーバーがダウンしています。)

複数のデバイスを持つユーザーを考慮したい場合、事態はさらに複雑になりますが、それはおそらく合理的に考慮する必要がある範囲を超えています.

于 2013-10-29T17:58:22.717 に答える