2011-06-23 5 views
0

アプリケーションの主なアクティビティを常にフォアグラウンドに維持する方法はありますか?つまり、HomeキーまたはBackキーが無効になっています。"home"としての恒久的アクティビティ

このアプリケーションは、一般ユーザーと管理者が使用します。システム管理者だけが、アプリケーションの内部アクティビティからシステムの残りの部分にアクセスできるという考え方です。

ホームキーを上書きする方法がないことを読んだので、確認/回避策があれば感謝します。

+2

をバックキーを防止するための例です。私はシステムのカスタムバージョンをビルドする必要があると思う(必要なコンポーネントはすべてhttp://android.git.kernel.orgで自由に入手できます)、ランチャーをアプリケーションに置き換えます。結局のところ、このようなアプリケーションを持つデバイスは特別目的であるため、特別な目的のシステムイメージが必要です。 –

+0

ありがとう!これは私たちが心に留めていた最初の解決策の1つですが、アプリケーションのプロトタイピングと最初のリリースでは、私たちのコスチュームにとって、あるいはさらに悪いことに、私たちにとっては高価になります。カスタム画像に関する非劇的なお勧めに感謝します! xD –

答えて

0

最も簡単な方法のような音は、ホームの交換品を作成することです。

+0

これも別のオプションですが、私が@Jan Hudecに言ったように、古典的なアプリケーション構造に「ノイズ」のないプロトタイプとしてアプリケーションをテストしたいと考えています。標準以外のアプリケーションを作成する前に、標準的な動作をオーバーライドするという単純な方法が必要でした。とにかく、この種のアプリに慣れるために、私はホームの代わりに取り組んでいます。どうもありがとうございました。 –

0

すべてのキーイベントをキャプチャできるアクティビティのOnKeyDownをオーバーライドし、押されたリターンがtrueの場合は自宅またはバックバックが押されたかどうかを確認します。それはイベントを伝播しません。ここで

0

は、ユーザーが不正なアプリケーションによるシステムの他の部分からロックアウトされたくないので、システムが正しくそれを許可していませんアンドロイド

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    if ( Integer.valueOf(android.os.Build.VERSION.SDK) < 7 //Instead use android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.ECLAIR 
      && keyCode == KeyEvent.KEYCODE_BACK 
      && event.getRepeatCount() == 0) { 
     // Take care of calling this method on earlier versions of 
     // the platform where it doesn't exist. 
     onBackPressed(); 
    } 

    return super.onKeyDown(keyCode, event); 
} 

@Override 
public void onBackPressed() { 
    return; 
} 
+0

はい、私は同様の方法を実装していますが、ホームキーの場合は、ドキュメントやフォーラムで読む限り禁止されています。このシステムは、ホームキーを「pannicボタン」として保護し、その動作を無効にすることはできません。おそらく回避策があるかもしれませんが、これを行うための「正式な」方法があるかどうかを知りたいと思っていました。とにかくありがとうございました。 –

関連する問題