0

私はHoneyCombタブレット用のプレゼンテーションスタイルのアプリケーションを開発しています。 1つの段階で、タブレットは、人々が対話するために部屋の周りを通過することができる。可能であれば、悪意のあるユーザーが現在の活動から離れないようにしたいと考えています。HoneyCombアクティビティをunclosableにすることは可能ですか?

これまでアクティビティの終了を防ぐためにonBackPressed()を上書きしましたが、ユーザはステータスバーの他のボタンを押しても、ポップアップ通知を介してアプリを終了できます。

提案や解決策はありますか?

おかげ

答えて

0

。あなたの活動を全画面にする。

定期的にサービスからあなたの活動をトリガするalarmManagerを使用します(あなたのアクティビティがフォアグラウンドされていない場合のみ)2 OR秒を言います。このためには、boolean変数を使用してsharedPreferenceを使用して変数を格納します。 onPauseまたはonStopまたはonDestroyでonReceumeおよびfalseでこの値がtrueになります。そして、boolean変数がfalseの場合にのみ、サービスからアクティビティを開始します。ユーザーがホームボタンを押すと、AlaramManagerがあなたの活動を再び開始します。

サービスとアクティビティを終了し、alarmManagerをキャンセルするための特別なボタンを作成します。

+0

提案をお寄せいただきありがとうございます。それらを試してみましょう。 – JackMahoney

0

は、私の知る限りではホームボタンを押しをキャプチャする方法はありませんので、これは不可能です。言うまでもなく、デベロッパーチームの設計上の悪い判断になります。ホームボタンがあるので、すべてのAndroidユーザーは標準的な方法でアプリを終了できます。ユーザーがアプリを終了できないようにする方法があれば、非常に悪意のあるアプリがいくつかあります。

+0

一方、悪用しないと非常に便利です。たとえば、インタラクティブなスライドショーを表示しているAndroidの携帯電話とiPhoneがあります。訪問者が不正行為をすることができないように、ボタンをカバーする特殊なケースに入れなければなりません。同様に、ゲームがホームボタンを傍受し、終了する前に保存したいかどうかをユーザに尋ねることができるかどうかを想像してください。私はいくつかの機会にホームボタンを押したことを知っている。 – Ozzah

+0

@Ozzahインタラクティブなスライドショーでは、画面をロックしたり、必要なだけUIをロックすることができます。ゲームのアイデアは、Androidが常にアクティビティをそのまま再現しようとする理由です。私は、アプリケーションがメモリを使い果たしたときに、インスタンスデータを管理する開発者に大きな負担をかけることは知っていますが、それがモデルです。開発者が携帯電話を再起動せずに決して手を出せないアプリや直感的ではない狂気のようなテクニックを作成させると、ユーザーエクスペリエンスが低下する可能性があります。私はそれが良い原因のために無効にすることはできないと言っているわけではありませんが、なぜ彼らがそれを許さないのか分かります。 – onit

0

私は、小売店向けの「キオスク」方式で動作する同様のアプリケーションを開発しています。アプリケーションが起動すると、システムバーをプログラムで隠して終了できなくなります。タブレットを再起動すると、システムバーが復元されます。しかし、root/suが必要です。

+0

これは興味深い考えです。どのライブラリが必要ですか?また、root/suのデバイスでどのようなメソッド呼び出しをしますか? – JackMahoney

+0

システム・バーを強制終了するための呼び出しは次のようになります: 'proc = Runtime.getRuntime()。exec(new String [] {" su "、" - c "、"サービス・コール・アクティビティ79 s16 com.android.systemui "});しかし、これはHoneycombだけで働いていました。 – Aaron

関連する問題