小编maj*_*jov的帖子

如何在屏幕关闭后保持播放有效

我有一个带音频播放的应用程序,但在某些设备(主要是华为,三星,索尼)上,当屏幕熄灭时播放停止.注意:对于Spotify,Play Music等其他应用,播放不会停止

我发现这个答案(对于华为设备)建议要求用户在电池优化设置(电池管理器>受保护的应用程序)中启用"后台运行"权限,但我想避免要求用户启用它.

是否有一些API可以为华为,三星,索尼或其他制造商提供编程方式?

是否可以检测应用程序是否没有此类权限?

编辑:播放在前台服务运行,应用程序持有唤醒锁

编辑2:我已经联系了与此问题相关的华为支持.一旦解决,我将分享更多信息.

android samsung-mobile battery-saver batterymanager huawei

11
推荐指数
1
解决办法
300
查看次数

如何使用新请求更新正在运行的JobService?

我有一个应用程序可以选择下载文件.为此,我实现了DownloadService,它将首先进行数据库查询以获取下载候选者,然后构建队列以供下载.一旦构建了队列,它将开始逐个处理下载,直到队列为空,然后自己完成.当服务正在运行时,用户可以添加更多下载请求(将ACTION发送到正在运行的服务以重新构建队列).但是我们不再使用后台服务来定位Oreo或更新版本的Android,我希望避免将其作为前台服务实现,以避免在确定下载队列时显示通知而不进行实际的文件下载.

我试着schedulesetOverrideDeadline(0)使用JobScheduler的API,但是,而不是更新正在运行的作业,旧的被破坏,而新的创造.我也试图enqueue JobWorkItem替代,但onStartJobJobService(其中,我应该出队工作)如果作业已在运行,所以我不能用新的请求更新它不叫.

编辑1:我有一个实验性实现,我将使用此示例代码检查我的JobService是否正在运行

private boolean isServiceRunning() {
    ActivityManager manager = (ActivityManager) getSystemService(ACTIVITY_SERVICE);
    for (RunningServiceInfo service : manager.getRunningServices(Integer.MAX_VALUE)){
        if("com.example.MyJobService".equals(service.service.getClassName())) {
            return true;
        }
    }
    return false;
}
Run Code Online (Sandbox Code Playgroud)

如果作业没有运行,我会安排它,但如果它正在运行,我将使用EventBus向此作业发送事件并使用新请求更新作业.但我更喜欢'纯'JobScheduler的API解决方案.

编辑2:我还可以选择并行下载多个文件并更改排队下载的优先级.

有人知道如何在不创建新JobSchedulerAPI的情况下继续向正在运行的作业发布新请求(操作)吗?(没有第三方图书馆)

api android android-jobscheduler android-8.0-oreo

9
推荐指数
0
解决办法
346
查看次数

如何在VM(virtualbox)中运行的Chromium OS上启用开发人员模式

我试图在Android开发者网站上根据这些说明在VirtualBox上运行的Chrome OS上测试Android应用程序.

其中一个步骤是在Chrome OS上启用开发人员模式.某些设备的说明可在此处找到,但我不确定如何在VM中的Chrome操作系统上启用它.

Chrome OS图片已从此链接下载

有人可以帮忙吗?它甚至可能吗?

virtualbox google-chrome-os

5
推荐指数
1
解决办法
279
查看次数