gpt4 book ai didi

android - Android Wear处于 sleep 模式时如何唤醒?

转载 作者:塔克拉玛干 更新时间:2023-11-02 18:56:20 25 4
gpt4 key购买 nike

当 Android Wear 进入休眠模式(屏幕变暗)时,我的部分代码不会执行。我在后台服务中使用Timer来触发一些 Action ,比如从wear发送数据到mobile,但是数据发送不出去。当我点击屏幕唤醒它时发送它。

我也尝试使用定时器在屏幕关闭时触发振动通知,但直到我点击屏幕它才出现。

在 Debug模式下(蓝牙或 USB),数据发送和通知工作正常。

我怀疑这是因为当 Android Wear 处于 sleep 模式时,它的 CPU 工作在最低水平,因为 Timer 仍在运行,但不是用于 GoogleApiClient、IntentService 或 Notification。

我尝试了很多方法来唤醒 CPU,例如 AlarmManager、PowerManager、Wakelock,但它对 Android Wear 不起作用。

有人遇到过这个问题吗?解决方案是什么?

最佳答案

我正在使用 PowerManger 来唤醒我的可穿戴设备,每次我收到来自处理设备的消息。不要忘记释放 PowerManager.WakeLock

public abstract class WatchFaceActivity extends Activity {

private PowerManager.WakeLock mWakeLock;
private Handler mWakeLockHandler;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_clock_watch_face);

PowerManager powerManager = (PowerManager) getSystemService(POWER_SERVICE);
mWakeLock = powerManager.newWakeLock((PowerManager.SCREEN_BRIGHT_WAKE_LOCK | PowerManager.FULL_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP), "MyWakelockTag");

mWakeLockHandler = new Handler();

IntentFilter messageFilter = new IntentFilter("message-forwarded-from-data-layer");
MessageReceiver messageReceiver = new MessageReceiver();
LocalBroadcastManager.getInstance(this).registerReceiver(messageReceiver, messageFilter);
}

public class MessageReceiver extends BroadcastReceiver {

@Override
public void onReceive(Context context, Intent intent) {
if (!mWakeLock.isHeld()) {
mWakeLock.acquire();
}
mWakeLockHandler.removeCallbacksAndMessages(null);
mWakeLockHandler.postDelayed(mReleaseRunnable, 5000);
}
}

private Runnable mReleaseRunnable = new Runnable() {

@Override
public void run() {
mWakeLock.release();
}
};


@Override
protected void onDestroy() {
super.onDestroy();
mWakeLockHandler.removeCallbacksAndMessages(null);
mWakeLock.release();
}
}

并在您的 list 中允许 WAKE_UP 权限。

<uses-permission android:name="android.permission.WAKE_LOCK" />

关于android - Android Wear处于 sleep 模式时如何唤醒?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25886935/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com