0

画面がロックされている場合、アクティビティを延期したい。たとえば、画面がロックされている場合、ユーザーが画面のロックを解除したことを検出し、その後すぐにアクティビティを開始したいと考えています。これは、ロックされているかどうかを検出するために現在使用しているものです。しかし、ロックが解除された直後にアクティビティを開始する方法がわかりませんか? 画面のロックが解除されると、KeyguardManager は自動的に更新されますか? ありがとう!

KeyguardManager myKM = (KeyguardManager) context.getSystemService(Context.KEYGUARD_SERVICE);
 if( myKM.inKeyguardRestrictedInputMode()) {
 //it is locked
 else
 {
  //it is unlocked
} 
4

1 に答える 1

1

KeyguardManager の動作はわかりませんが、ブロードキャスト レシーバーを使用した代替ソリューションを提供できます。

私のアプリでは、次のことを行いました。

  1. BroadcastReceiver を拡張する新しいクラスを作成する
  2. マニフェストに受信者を登録し、次のインテント フィルターを割り当てます。

    <receiver android:name="com.the.phonagramtwo.UserPresentReciever" >
        <intent-filter>
            <action android:name="android.intent.action.USER_PRESENT" />
        </intent-filter>
    </receiver>
    
  3. onRecieve メソッドでロック解除後の望ましい動作を定義する

    public class UserPresentReciever extends BroadcastReceiver {
    
        public void onReceive(Context context, Intent intent) {
            Activity a = new Activity;
            Intent i = new Intent(a.getBaseContext(), ActivityYouWithToStart.class);
            a.startActivity(i);
        }
    }
    
于 2013-09-02T00:17:50.547 に答える