web-dev-qa-db-ja.com

画面がロックされている場合でもアクティビティ画面を開始Android

画面がロックされている場合でも、デバイスでアクティビティを開始する方法。以下のように試しましたが、機能しません。

放送受信機:

Intent alarmIntent = new Intent("Android.intent.action.MAIN");
        alarmIntent.setClass(context, Alarm.class);
        alarmIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        alarmIntent.addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED +
                             WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD +
                             WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON +
                             WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);
        context.startActivity(alarmIntent);
14
yuva ツ

AndroidManifest.xmlファイルには次の権限が必要です。

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

マニフェストの詳細を確認してください ここ 。これを確認できます リンク クエリで。

15
Yup

これは2つの方法で実現できます。

  1. この投稿の@Yupで説明されているように、ウェイクロックを使用します。

  2. ウィンドウフラグを使用します。

ウィンドウフラグの使用:

開始するアクティビティAをonReceive(...)で開きます。これをそのアクティビティAのonCreate()に貼り付けます

_final Window win= getWindow();
win.addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED | WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD);
win.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON | WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);
_

setContentView(...)の前に貼り付けていないことを確認してください:-)

19
Junaid

これを、画面がロックされているときに開きたいアクティビティのonCreateメソッドに貼り付けますsetContentView()の後

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

画面がロックされているかロック解除されているかを確認できます ここ

次に、ウェイクロックと電源管理オプションを使用して、ロックされることなく画面を維持できます。あなたは助けを見つけることができます ここ

1
Suneel Prakash
  1. マニフェストファイルに権限の使用を許可-permissionAndroid:name = "Android.permission.WAKE_LOCK"次に、要件アクティビティonCreate()内にコードを記述します
  2. 最終ウィンドウwin = getWindow(); win.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON | WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);
0
Jigar Rughani