アンドロイドスタジオでロック画面アプリを開発しています。 HOMEボタンを無効にすることはできません。しかし、プレイストアには非常に多くのロック画面アプリケーションがあります。彼らはどうしているのですか?それらのアプリでホームボタンを押すと何も起こりません。 keyguardのタイプは推奨されておらず、またキーロックもありません。何もしない、または同じ画面にするために、ホームボタンをどうやって作るのか教えてください。今ではホーム画面にしたいとは思っていません。なぜなら、ユーザーはホーム画面を選択することができますし、ロック画面アプリを開発しています。これが唯一の解決策であれば、自分の画面をホーム画面プログラム的にどうぞ、正解をください。アンドロイドのロック画面のホームボタンの動作を変更する
-1
A
答えて
1
Googleで多くの検索を行った後。私はついに解決策を見つけました。私はGitHubでそれを見つけました。もし興味があれば。
your package name;
import android.app.Activity;
import android.app.AlertDialog;
import android.os.Bundle;
import android.view.Gravity;
import android.view.MotionEvent;
import android.view.WindowManager;
import android.widget.FrameLayout;
import com.amigo.hammad.screenlock7292016.R;
import static android.view.WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL;
import static android.view.WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED;
import static android.view.WindowManager.LayoutParams.TYPE_SYSTEM_ALERT;
import static android.view.WindowManager.LayoutParams.TYPE_SYSTEM_ERROR;
public class HomeKeyLocker {
private OverlayDialog mOverlayDialog;
public void lock(Activity activity) {
if (mOverlayDialog == null) {
mOverlayDialog = new OverlayDialog(activity);
mOverlayDialog.show();
}
}
public void unlock() {
if (mOverlayDialog != null) {
mOverlayDialog.dismiss();
mOverlayDialog = null;
}
}
private static class OverlayDialog extends AlertDialog {
public OverlayDialog(Activity activity) {
super(activity, R.style.AppTheme);
WindowManager.LayoutParams params = getWindow().getAttributes();
params.type = TYPE_SYSTEM_ERROR;
params.dimAmount = 0.0F; // transparent
params.width = 0;
params.height = 0;
params.gravity = Gravity.BOTTOM;
getWindow().setAttributes(params);
getWindow().setFlags(FLAG_SHOW_WHEN_LOCKED | FLAG_NOT_TOUCH_MODAL, 0xffffff);
setOwnerActivity(activity);
setCancelable(false);
}
public final boolean dispatchTouchEvent(MotionEvent motionevent) {
return true;
}
protected final void onCreate(Bundle bundle) {
super.onCreate(bundle);
FrameLayout framelayout = new FrameLayout(getContext());
framelayout.setBackgroundColor(0);
setContentView(framelayout);
}
}
}
super(activity、R.style.AppTheme)にエラーが見つかる可能性があります。この行あなたは単にあなたのアプリのテーマを与える必要があります。
次に、ロック画面のonCreateメソッドでオブジェクトを作成する必要があります。ロック機能を呼び出します。例えば:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Object of Class HomeKeyLocker.
mHomeKeyLocker = new HomeKeyLocker();
setContentView(R.layout.yourActivityLayoutName);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);
// Calling Function in Class HomeKeyLocker to Block Home Button on this Activity.
mHomeKeyLocker.lock(this);
}
1
シャーク氏によると、あなたのアクティビティでは、のOnKeyDownを無効にする必要があります。 &以下のコードをあなたの活動にコピーしてください。
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
// TODO Auto-generated method stub
if((keyCode==KeyEvent.KEYCODE_HOME)
{
// *** DO YOUR STUFF HERE ***
return true;
}
else
return super.onKeyDown(keyCode, event);
}
ホームボタンをクリックすると処理されます。
関連する問題
- 1. iOS7の画面ロックとホームボタンの押下を区別する
- 2. Androidのロック画面の動作
- 3. iOS5の画面ロックとホームボタンの押下を区別する方法は?
- 4. ロック画面の画像変化
- 5. アンドロイド:通知がロックされた画面
- 6. WP7で私のアプリケーションの画面の動作をロック
- 7. 小さな画面でスクロールの動作を変更する
- 8. アンドロイドのロック画面はAndroidを使用してプログラムでロック画面のために
- 9. コードからアンドロイドの画面方向を変更する
- 10. iOSロック画面アプリの起動
- 11. Nativescript - 起動画面を変更する
- 12. アンドロイドのホームボタン?
- 13. UWP設定のロック画面が動作しない
- 14. GNU画面の自動サイズ変更画面-x
- 15. ロックされた画面で動作するAndroidアプリケーション
- 16. アプリで画面のフラグメントコールをロックする
- 17. Android画面のロックを交換する
- 18. 画面ロックとロック解除
- 19. ホームボタンとしてのアンドロイド再起動アプリケーション
- 20. アンドロイド画面の作成の方向性
- 21. iOS 5.1の自動画面ロックを無効にする
- 22. アンドロイドのGridviewの画像が画面外に移動する
- 23. Androidのロック画面を作成するApp。
- 24. Kivy:on_pressイベントで画面マネージャーの画面を変更する
- 25. ホームボタンの動作を無効にする
- 26. ファブリックデジット画面のテーマを変更する
- 27. 画面の向きが私の実行中の動作を変更します
- 28. アンドロイド:アンドロイドパッドの画面
- 29. アンドロイドの画面カテゴリ
- 30. onConfigChangedを使わずにアンドロイドの画面オリエンテーションを変更する方法
http://stackoverflow.com/a/10025904/5515371 –
'にonKeyDown()'メソッドを実装し、そこにボタンの押しをキャッチし、これを試してみてください。 – Shark
ありがとう@MujammilAhamedしかし、私が言っていたことはアンドロイドが今変更されていることです。私はKeylockerがそこにないことを意味します、キーガードはそこにありませんまたTYPE_KEYGUARDはそこにありません。だから、今日はうまくいくコードに私を紹介してください。 –