web-dev-qa-db-ja.com

デフォルトのロック画面の代わりにAndroid)で独自のロック画面を作成する方法

Androidパターンロックのような独自の電話ロックアプリを作成することを考えています。電話が起動/再起動/電話、ロック/電話、ロック解除するたびにアプリを表示または起動する必要があります。デフォルトのロック画面の代わりにアプリを表示する方法と、デフォルトのロック画面を非表示にする方法がわかりません。質問は次のとおりです。

  1. デフォルトのロック画面の代わりにアプリを表示または起動する方法
  2. とは

    getWindow().addFlags(
      WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED | 
      WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD | 
      WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON | 
      WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);
    

これはどのように役立ちますか?

  1. とは

    public class BootReciever extends BroadcastReceiver {
    
        @Override
        public void onReceive(Context context, Intent intent) {
            if (intent.getAction() != null) {
                if (intent.getAction().equals(Intent.ACTION_USER_PRESENT)) {
                Intent s = new  Intent(context,ViewPagerMainActivity.class);
                s.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                context.startActivity(s);
                }
            }
        }
    }
    

これはどのように役立ちますか?

  1. アプリの動作が終了した後、ホームページをどのように表示しますか?

ポイント2で使用したコードは、質問1の回答として使用する必要があります。参照は デフォルトのロック画面でのAndroidアクティビティ です。

質問2については、次の関連リンクを参照してください。

あなたの質問3に答える前に、私はあなたに尋ねたいと思います、あなたは BroadcastReceiver についての知識を持っていますか?要するに-

ブロードキャストレシーバー(ショートレシーバー)はAndroidコンポーネントであり、システムまたはアプリケーションイベントに登録できます。イベントに登録されたすべてのレシーバーはAndroid =このイベントが発生した後のランタイム。

たとえば、アプリケーションは、Androidシステムが起動プロセスを完了したときに発生するACTION_BOOT_COMPLETEDシステムイベントに登録できます。

質問4に来て、次のコードでプログラムでホームページを表示できます。

Intent startMain = new Intent(Intent.ACTION_MAIN);
startMain.addCategory(Intent.CATEGORY_HOME);
startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(startMain);

参照: プログラムでホーム画面に移動

そして最後に、カスタムロック画面を作成するのに役立つリンクをいくつか提供したいと思います。

18
ridoy