java - Android Oreo 中手机连接充电器 (ACTION_POWER_CONNECTED) 时启动服务
问题描述
当手机连接到 Android Oreo 中的充电器 (ACTION_POWER_CONNECTED) 时,我在启动服务时遇到问题,通过在清单中指定接收器不起作用(限制 android Oreo)。我用JobSheduler试过了,但没有成功(连接充电器时服务没有启动),我的代码如下:
public class JService extends JobService {
@Override
public boolean onStartJob(final JobParameters jobParameters) {
//RUN SERVICE
return false;
}
@Override
public boolean onStopJob(final JobParameters jobParameters) {
return false;
}
}
并从 MainActivity (onCreate) 调用:
ComponentName myService = new ComponentName(this, JService.class);
JobInfo myJob = new JobInfo.Builder(LOAD_ARTWORK_JOB_ID,myService)
.setRequiresCharging(true)
.setPersisted(true)
.build();
JobScheduler jobScheduler = (JobScheduler) getSystemService(Context.JOB_SCHEDULER_SERVICE);
jobScheduler.schedule(myJob);
清单声明:
<service android:name=".services.JService"
android:permission="android.permission.BIND_JOB_SERVICE" />
解决方案
推荐阅读
- ansible - 使用 ansible 编辑 j2 模板
- nsis - 如何在 NSIS 中连续运行 .exe 文件?
- c# - 尝试从 IdentityContext 派生应用程序数据库上下文时出错
- installation - 使用“1”参数调用“DownloadString”的异常:“无法连接到远程服务器”
- sql - SUM TOP 3 用于每个用户的类型和 TOP 1 用于另一种类型
- python - 列表理解而不是嵌套的 for 循环和 ifs
- python - 如何返回仅包含某些数量的原始列表的列表的子列表
- google-apps-script - GSCRIPT:如果过滤器处于删除状态的 If 语句;否则继续
- c# - app.config中的更改,重启后似乎不会影响服务
- swagger - OpenAPI Swagger 未显示示例