相关疑难解决方法(0)

android AlarmManager没有唤醒手机

我想在某个时间显示一个活动.为此,我使用的是AlarmManager.当设备处于唤醒状态时,它可以正常工作,但如果它处于睡眠状态则不会将其唤醒.

我设置闹钟的代码:

Calendar alarmTime = Calendar.getInstance();
alarmTime.set(Calendar.HOUR_OF_DAY, alarm.hour);
alarmTime.set(Calendar.MINUTE, alarm.minute);
alarmTime.set(Calendar.SECOND, 0);

if (alarmTime.before(now))
    alarmTime.add(Calendar.DAY_OF_MONTH, 1);

Intent intent = new Intent(ctxt, AlarmReceiver.class);
intent.putExtra("alarm", alarm);
PendingIntent sender = PendingIntent.getBroadcast(ctxt, alarm.id, intent, PendingIntent.FLAG_UPDATE_CURRENT);
alarmManager.set(AlarmManager.RTC_WAKEUP, alarmTime.getTimeInMillis(), sender);
Run Code Online (Sandbox Code Playgroud)

我的广播接收器:

@Override
public void onReceive(Context context, Intent intent) {
    try {

Bundle bundle = intent.getExtras();
final Alarm alarm = (Alarm) bundle.getSerializable("alarm");

Intent newIntent;
if (alarm.type.equals("regular")) {
    newIntent = new Intent(context, RegularAlarmActivity.class);
} else if (alarm.type.equals("password")) {
    newIntent = new Intent(context, PasswordAlarmActivity.class);
} else if (alarm.type.equals("movement")) { …
Run Code Online (Sandbox Code Playgroud)

android alarmmanager

26
推荐指数
3
解决办法
2万
查看次数

Android - 如何从困难的睡眠中唤醒手机拍照?

我想在几个小时内定期从Android设备的相机拍照,以创建一个时间流逝的视频效果.

我设置了一个Alarm Manager,其AlarmManager.RTC_WAKEUP标志设置为每隔几分钟启动一次服务.

该服务包含部分唤醒锁,有些工作,然后通过启动活动的警报管理器调用广播接收器.

活动被创建(或恢复),打开它自己的唤醒锁,并设置相机预览表面.设置表面后,将调用SurfaceHolder侦听器的surfaceChanged()方法,最终拍摄照片.

如果设备处于唤醒状态,一切都会按预期完美运行.但是如果设备处于睡眠状态,一旦Activity的onResume()方法完成,Activity就会立即暂停.相机的预览表面永远不会完成初始化,也不会拍摄任何照片.

所以我的问题是:

  1. 有没有办法以编程方式唤醒手机?我甚至尝试使用:

    PowerManager powerManager =
                (PowerManager)this.getSystemService(Context.POWER_SERVICE);
    powerManager.userActivity(SystemClock.currentThreadTimeMillis(),false);
    
    Run Code Online (Sandbox Code Playgroud)

但是,如果手机处于睡眠状态,则不会唤醒手机.

  1. 有没有办法在不使用预览表面视图的情况下拍照?

  2. 有没有办法拍摄不依赖异步回调的图片?我可以将所有代码放在Activities onResume()方法中来拍照吗?

  3. 有没有办法让Activity的onResume()方法运行得足够长,以便摄像头的预览有足够的时间来初始化并调用所有的监听器?

我正确使用了唤醒锁,并且我在清单文件中正确设置了所有权限.我的活动没有保持足够长的时间以使异步侦听器正常工作.

为了解决这个问题,我试图让所有Android 1.6兼容,因为这是我唯一可以访问的测试设备.

这是令人沮丧的事情!

camera android android-wake-lock wakelock sleep-mode

9
推荐指数
1
解决办法
2万
查看次数