私は以下のようにしたい:
ユーザーがハードロック解除ボタンを押します。ロック解除ボタンを押した後、私の活動が始まります。画面のユーザープロンプトの閉じるボタンを使用してアクティビティを閉じた後、パターンロック(またはピンロック)を入力します。右パターンロックを入力すると、ホーム画面が表示されます。
以下のシナリオが必要です。
電源/ロック解除ボタンを押します->アクティビティを開始します->アクティビティの閉じるボタンをクリックします->プロンプトを押してロック解除のパターンを入力します->パターンを入力します->ホーム画面を表示します
現在、以下のように実行されています。
のブロードキャストレシーバーを使用しACTION_USER_PRESENT
て、ユーザーがパターンを入力し、デバイスのロックが解除された後にアクティビティを取得しました
のブロードキャストレシーバーを使用してACTION_SCREEN_ON
、ロック解除ボタンを押した後にログにメッセージが表示されましたが、ユーザーがパターンを入力してデバイスのロックが解除された後、アクティビティが開始されます。
ACTION_SCREEN_ON
とのイベントを受信するためにBroadcastReceiverを使用してみACTION_USER_PRESENT
ました。
私のコードは以下の通りです:
放送受信機-
public class BrodcastReceiver extends BroadcastReceiver
{
@Override
public void onReceive(Context context, Intent intent)
{
Log.d("receiver", "main");
if (intent.getAction().equals(Intent.ACTION_SCREEN_OFF))
{
// do whatever you need to do here
Log.d("receiver", "screen off");
}
else if (intent.getAction().equals(Intent.ACTION_SCREEN_ON))
{
// and do whatever you need to do here
Log.d("receiver", "screen on");
context.startActivity(new Intent(context,
unlock_image.class)
.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)
.setFlags(Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT)
.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK));
Log.d("receiver", "aft activity");
}
else if (intent.getAction().equals(Intent.ACTION_USER_PRESENT))
{
Log.d("receiver", "unlock");
context.startActivity(new Intent(context,
unlock_image.class)
.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK));
}
}
BroadcastListnerの登録-
IntentFilter filter = new IntentFilter(Intent.ACTION_SCREEN_ON);
filter.addAction(Intent.ACTION_SCREEN_OFF);
filter.addAction(Intent.ACTION_USER_PRESENT);
BroadcastReceiver mReceiver = new BrodcastReceiver();
registerReceiver(mReceiver, filter);
たくさんやってみましたが、欲しいものが手に入りません。誰かがアイデアを持っているなら、どんな助けでもありがたいです、私が望むように期待される結果を得る方法。