locked
ハードウェアキーの無効化について RRS feed

  • 質問

  • Windows PhoneのアプリケーションをSilverlightで開発しています。

    プログラムで、ハードウェアキーが押された時の処理を無効化することはできるのでしょうか?
    無効化の具体的なイメージは、ボタンが押された際に、起動中のアプリケーションが動き続けることです。

    標準的な動きではないため、審査が通らない可能性があることも分かっておりますが、技術的に可能なのでしょうか。
    もしくは、代替案(ホーム画面に戻るが、自動的にアプリが立ち上がる等)がございましたら、ご教示願えれば幸いです。

    戻るボタンの無効化は、BackKeyPressイベント内で「e.Cancel = true;」と書くことで無効化できることは確認できました。
    ホームボタン・検索ボタンを無効化できる方法について、探しております。
    2011年11月24日 5:13

回答

  • 戻るボタン以外は無効化することはできません。
    これらのボタンが押された時にはアプリケーションはサスペンドするようになっており、全ての処理は停止されます。そしてアプリケーションがアクティブになったときに再び動き出すようになっています。ですから、見かけ上は起動中のアプリケーションは動き続けているようになっています。

    但し、ネットワーク処理などの実時間でタイムアウト処理をしている場合には、非アクティブ、アクティブになったときに発生するイベント内で処理する必要があります。
    また、サスペンド時にメモリが足りなくなったときには非アクティブなアプリケーションは強制的に終了される(Tombstoning)ようになっているので、このケースに対応するには同じイベント内で処理する必要があります。



    2011年11月29日 19:19

すべての返信

  • 戻るボタン以外は無効化することはできません。
    これらのボタンが押された時にはアプリケーションはサスペンドするようになっており、全ての処理は停止されます。そしてアプリケーションがアクティブになったときに再び動き出すようになっています。ですから、見かけ上は起動中のアプリケーションは動き続けているようになっています。

    但し、ネットワーク処理などの実時間でタイムアウト処理をしている場合には、非アクティブ、アクティブになったときに発生するイベント内で処理する必要があります。
    また、サスペンド時にメモリが足りなくなったときには非アクティブなアプリケーションは強制的に終了される(Tombstoning)ようになっているので、このケースに対応するには同じイベント内で処理する必要があります。



    2011年11月29日 19:19
  • Higeneko さん

    返信が遅くなり申し訳ございません。
    やはり、戻るボタン以外のハードウェアキーは無効化できないんですね。
    別の方法を考えたいと思います。

    返信ありがとうございました。
    2011年12月6日 10:22