私のアプリケーションでは、電話をロックおよびロック解除する必要があります。私はそれを検索しました、私は多くの答えを見つけました、私はそれらを試しました、しかし誰も働いていません。
onCreate()
で電話のロックを解除し、アクティビティが終了している間にもう一度電話をロックする必要があります。
あなたたちは同じことをする方法を知っていますか?
友よありがとう。
編集:
私が試したいくつかのリンクは次のとおりです。
画面がロックされているときにアクティビティを表示する方法は?
https://groups.google.com/forum/#!topic/Android-developers/BOLjJTMO4zE
私のアプリケーションでは、AlarmManager
を使用してタスクをスケジュールし、電話ロックを有効にしています。私の活動は予定された時間に開始されていますが、電話のロックが解除されていません。スマートフォンのロックを解除すると、手動で実行中のアクティビティが表示されます
BroadcastReceiver
にwakelock
を設定し、activity
に設定します
これを行う:
Window window = this.getWindow();
window.addFlags(LayoutParams.FLAG_DISMISS_KEYGUARD);
window.addFlags(LayoutParams.FLAG_SHOW_WHEN_LOCKED);
window.addFlags(LayoutParams.FLAG_TURN_SCREEN_ON);
以下をインポート
import Android.view.Window;
import Android.view.WindowManager.LayoutParams;
それは私の問題を解決しました、それを評価してください:-)))
API 27の時点で、FLAG_SHOW_WHEN_LOCKED
およびFLAG_TURN_SCREEN_ON
は非推奨になりました。代わりに、これをManifest
で使用してください
<activity
Android:name=".MyActivity"
Android:turnScreenOn="true"
Android:showWhenLocked="true"/>
または、一般的な使用法として、アクティビティで:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O_MR1) {
setTurnScreenOn(true);
setShowWhenLocked(true);
} else {
Window window = getWindow();
window.addFlags(LayoutParams.FLAG_SHOW_WHEN_LOCKED);
window.addFlags(LayoutParams.FLAG_TURN_SCREEN_ON);
}
}