Intent.ACTION_USER_PRESENT не получен на устройствах HoneyComb или ICS (Samsung)

У меня есть BackgroundReceiver, настроенный для получения android.intent.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);
        }
    }
}

Вопросы:

  1. Есть ли какая-то хитрость в использовании этих действий намерения на Android 3.x и 4.x?
  2. Возможно, это известная проблема Samsung?
  3. Или, возможно, есть какие-то настройки устройства, которыми я пренебрег на этих устройствах?

person Richard Le Mesurier    schedule 26.04.2012    source источник
comment
этот вопрос подразумевает, что это можно сделать: Перенести задачу на передний план на android.intent.action.USER_PRESENT   -  person Richard Le Mesurier    schedule 21.05.2012


Ответы (1)


К этому ответу есть комментарий ubuntudroid (приложение Android только со службой), в котором говорится, что вам нужно запустить свою активность хотя бы один раз, прежде чем она будет правильно получать требуемые намерения.

По-видимому, представлено в Android 3.0.

Я еще не проверял эту теорию, но она объяснила бы то, что вы видите.

person Stephen Asherson    schedule 26.04.2012
comment
Я столкнулся с подобным поведением, которое можно было бы объяснить этим. Я автоматически развертывал APK на устройстве, а затем взаимодействовал с ним через широковещательные приемники. (Андроид 5.1.1). Действие USER_PRESENT было получено с перерывами. - person running-codebase; 15.08.2016