2016-03-21 11 views
0

私は在庫lock screenを置き換え、典型的なlock screenの基本機能を取得するアンドロイドアプリを開発しようとしています。私はAPI level 15以上からアプリをサポートするつもりです。しかし、私はlock screenの動作に関するいくつかの問題に直面しています。私はまだhomerecent buttonsoft navigation barにすることはできません。私はスタック、github、および他のソースでたくさんの例を見つけましたが、それほど有用ではありません。 android> = 4.0.3

getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON | 
        WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED | 
        WindowManager.LayoutParams.FLAG_FULLSCREEN); 

getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED 
        | WindowManager.LayoutParams.FLAG_FULLSCREEN 
        | WindowManager.LayoutParams.FLAG_DIM_BEHIND); 

LockActivity

<uses-permission android:name="android.permission.DISABLE_KEYGUARD" /> 

追加された次のフラグをしかし、任意の効果的なソリューションを取得できませんでした:

は、私は次のように試してみました。私はZUI Locker私が実際にしたいことをやっている非常に素晴らしいアプリを見つけました。彼らはアクセス許可にアクセスしているどのようにデフォルトのロック画面のように動作する ?

提案がありますか? ありがとうございます!

+0

ユーザがシステム画面をブロックした後に、設定で(設定を送信して)システムロック画面を無効にするようにガイドする必要があります。 –

+0

@SHICONGCAOはこのようには機能しませんでした。あなたは機能を持つために(デバイス管理者のような)いくつかの権限を取得する必要があると思いますか? –

答えて

0

私はlockscreenアプリも開発しており、お手伝いもしたいと思います。

ViewsとTYPE_SYSTEM_ERRORの背後にあるコンセプトについては、hereの回答を参照してください。

しかし、私は、コードを少し微調整し、ここに私のバージョンです:

WindowManager mWindowManager; 
RelativeLayout mLscreenlayout; 

WindowManager.LayoutParams localLayoutParams = new WindowManager.LayoutParams(WindowManager.LayoutParams.TYPE_SYSTEM_ERROR, 
      WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE| 
      WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL| 
      WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH| 
      WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN| 
      View.SYSTEM_UI_FLAG_LAYOUT_STABLE| 
      View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION| 
      View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN| 
      View.SYSTEM_UI_FLAG_HIDE_NAVIGATION| 
      View.SYSTEM_UI_FLAG_FULLSCREEN, 
      PixelFormat.TRANSLUCENT); 
    mWindowManager = ((WindowManager)getApplicationContext().getSystemService(WINDOW_SERVICE)); 
    mLscreenlayout = new RelativeLayout(getApplicationContext()); 
    getWindow().setAttributes(localLayoutParams); 


    View.inflate(this, R.layout.activity_lockscreen, this.mLscreenlayout); 
    this.mWindowManager.addView(mLscreenlayout, localLayoutParams); 

public void onDestroy() 
    { 
     mWindowManager.removeView(this.mLscreenlayout); 
     mLscreenlayout.removeAllViews(); 

     super.onDestroy(); 
     //myThread.interrupt(); 
     Log.i("Daze","Lockscreen Activity Destroyed"); 
    } 

はまた、ホームボタンをロックするGitHubのhere上のライブラリがあります。これが助けてほしいと思っています:)

関連する問題