首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >手机处于睡眠状态时文本到语音转换- Android

手机处于睡眠状态时文本到语音转换- Android
EN

Stack Overflow用户
提问于 2011-01-17 22:11:43
回答 1查看 1.9K关注 0票数 1

我有一个应用程序,它使用文本到语音每10分钟通知用户10分钟已经过去了。它目前工作正常,但如果您睡眠手机(按下电源按钮),它不再播放声音。

即使手机处于休眠状态,我如何播放这些声音?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-01-17 23:19:03

通常,如果设备进入休眠状态,您的代码就不会运行。为了让你的代码运行,你需要从PowerManager获取WakeLock。但在您的情况下,您不需要一直获取WakeLock。你需要每10分钟唤醒你的应用程序。否则,你的应用程序将什么都不做,只会消耗电池。

为了定期唤醒你的应用程序,你需要使用一个特殊的安卓AlarmManager

下面是一个示例:

代码语言:javascript
复制
Intent myIntent = new Intent(getApplicationContext(), YourActivity.class);    
PendingIntent pendingIntent = PendingIntent.getActivity(getApplicationContext(), 1,  myIntent, PendingIntent.FLAG_UPDATE_CURRENT);
AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE);
alarmManager.set(AlarmManager.ELAPSED_REALTIME_WAKEUP, firstTime, interval, pendingIntent);

您也可以发送将在您的服务中处理的广播(如果您不想使用Activity)。

编辑:除非您显式创建SCREEN_DIM_WAKE_LOCK,否则不会开始播放。请注意,PARTIAL_WAKE_LOCK将不能用于回放(现在不要解释原因,这可能是一个错误)。

代码语言:javascript
复制
PowerManager powerManager = (PowerManager)getSystemService(POWER_SERVICE);
WakeLock wakeLock = powerManager.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK, "Music");
wakeLock.acquire();
...start playback...
wakeLock.release();

编辑:新增60秒一次播放示例的工程(即使关屏、断开USB线)。它可以在这里找到:http://code.google.com/p/playevery60/

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4714109

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档