GCM не получает сообщение через несколько секунд после нажатия кнопки питания (SLEEP)

Пожалуйста, помогите мне решить эту проблему, ребята. Телефон получает сообщение только тогда, когда устройство включено. Когда он выключен в течение нескольких секунд (20-30) нажатием кнопки питания, он перестает принимать и будет продолжать получать, когда он включен. Это мой приемник.

public class GcmBroadcastReceiver extends WakefulBroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {
        Log.i("GCM ", "GCM COME");
        ComponentName comp = new ComponentName(context.getPackageName(),
                MainService.class.getName());
        startWakefulService(context, (intent.setComponent(comp)));
        setResultCode(Activity.RESULT_OK);
    }
}

person user3905216    schedule 04.08.2014    source источник


Ответы (1)


создайте один класс, как показано ниже, для Wakelock,

@SuppressLint("Wakelock")
public class WakeLocker {
private static PowerManager.WakeLock wakeLock;

@SuppressWarnings("deprecation")
public static void acquire(Context context) {
    if (wakeLock != null)
        wakeLock.release();

    PowerManager pm = (PowerManager) context
            .getSystemService(Context.POWER_SERVICE);
    wakeLock = pm.newWakeLock(PowerManager.FULL_WAKE_LOCK
            | PowerManager.ACQUIRE_CAUSES_WAKEUP
            | PowerManager.ON_AFTER_RELEASE, "WakeLock");
    wakeLock.acquire();
}

public static void release() {
    if (wakeLock != null)
        wakeLock.release();
    wakeLock = null;
}
}

и напишите эти строки в методе onrecive BroadcastReceiver

// Waking up mobile if it is sleeping
WakeLocker.acquire(getApplicationContext());
// Releasing wake lock
WakeLocker.release();
person MFP    schedule 04.08.2014
comment
телефон просыпается. но он по-прежнему не получает никаких сообщений, когда я нажимаю кнопку питания. Я даже поставил его на службу с оператором цикла, чтобы он всегда просыпался, но все еще не получал сообщение, но когда я разблокирую телефон, сообщение приходит напрямую. - person user3905216; 04.08.2014
comment
На самом деле я хочу, чтобы GCM работал или все еще мог получать сообщение, даже если мой телефон находится в заблокированном режиме, спящем режиме или т. Д., За исключением выключения, такого как BBM, приложение линии wassap, которое все еще может получать сообщение, даже если телефон находится в выключенном режиме. кроме выключения. спасибо заранее, ребята. - person user3905216; 04.08.2014