2011-10-21 15 views
8

マニフェストを通じてACTION_USER_PRESENT画面のロックを解除することが可能かどうかについて、異なる意見があるようです。BroadcastReceiverを持つマニフェスト内のACTION_USER_PRESENT

Broadcast Receiver for ACTION_USER_PRESENT,ACTION_SCREEN_ON,ACTION_BOOT_COMPLETED

私が取得することはできませんよ。

Android Broadcast Receiver Not Working

このスレッドははい、それを行うことができます意味します

このスレッドは、それを行うことができない何も意味しません2.3.3または3.2エミュレータのいずれかで動作するイベントです。

他に誰かがこれに関する最近の経験はありますか?そして、おそらく共有するコードサンプル?

答えて

10

受信機を使用します

public class Receive extends BroadcastReceiver { 

if (intent.getAction() != null) { 
      if 
        (intent.getAction().equals(Intent.ACTION_USER_PRESENT)) { 
Intent s = new Intent(context, MainActivity.class); 
        s.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 

        context.startActivity(s); 
}} 

そして、あなたのマニフェストで:

<receiver 
     android:name=".Receive" 
     android:enabled="true" 
     android:exported="false"> 
     <intent-filter> 
      <action android:name="android.intent.action.USER_PRESENT"/> 
     </intent-filter> 
    </receiver> 
+0

私はあなたのコードの上に使用されるが、最初の時間は私のロック・アクティビティが開いているが、私はそのことをautomaticllyにコールの後かわからないが壁紙を表示するときに画面が表示されます。なぜこのダイアログが私のロック操作ではなく画面上に表示されていますか...迅速にお手伝いしてください... –

+0

私は 'android:exported =" false "'を使用しません。 '-Tag、http://stackoverflow.com/questions/29081414/why-wont-this-broadcast-receiver-worを参照してください。 k-in-lollipop#comment58423396_29274695 – OneWorld

関連する問題