5

私が持っているハニカムまたはICS(サムスン)デバイス上で受信されませんあたりとしてマニフェストファイルにandroid.intent.action.USER_PRESENTを受信するように設定BackgroundReceiverIntent.ACTION_USER_PRESENTは

<receiver android:name="com.demo.MyBroadcastReceiver"> 
     <intent-filter> 
      <action android:name="android.intent.action.USER_PRESENT" /> 
     </intent-filter> 
    </receiver> 

マイ上書きonReceive(Context, Intent)方法は非常に簡単です:

@Override 
public void onReceive(Context context, Intent intent) 
{ 
    if (intent != null) 
    { 

     if (Intent.ACTION_USER_PRESENT.equals(intent.getAction()) 
     { 
      // wrapper for Log.d(String, String) 
      Dbug.log("MyBroadcastReceiver: [" + intent.getAction() + "]"); 

      // this calls a service 
      serviceExample(context, intent); 
     } 
    } 
} 

  • これは2.1、2.2 & 2に完全にテストされています。 3デバイス(HTC Desire、HTC WildFire、Motorola Razr)
  • これはHoneyComb(Samsung Galaxy Tab 10.1)またはICS(Samsung Galaxy Nexus)デバイスでは機能していないようです。
  • このバグ(USER_PRESENT never fires on honeycomb and ICS when keyguard is disabled)によると、私は失敗したデバイスにキーガードを設定しました。それは助けになりませんでした。

質問:

  1. のAndroid 3.xの& 4.xの上にこれらの目的のアクションを使用するいくつかのトリックはありますか?
  2. おそらくこれはSamsungのよく知られた問題ですか?
  3. これらのデバイスで無視されているデバイス設定がありますか?
+0

この質問は次のことを意味しています:[front to android.intent.action.USER_PRESENTにタスクを持ち込む](http://stackoverflow.com/questions/8750854/bring-task-to-front-on-android- intent-action-user-present) –

答えて

2

あなたはそれが正しく必要なインテントを受信する前に、少なくとも1回は、あなたの活動を開始する必要があると述べているこの回答にubuntudroidによってコメント(android app with service only)があります。

明らかにAndroid 3.0に導入されました。

私はまだこの理論をテストしていませんが、あなたが見ていることを説明します。

+0

私はこれによって説明されるような同様の動作に遭遇しました。 APKをデバイスに自動的にデプロイしてから、ブロードキャストレシーバを介してAPKとやりとりしていました。 (Android 5.1.1)。 USER_PRESENTアクションが断続的に受信されました。 –