这个错误提示是因为你的应用没有获取到android.permission.WAKE_LOCK权限,而JobIntentService需要获取该权限才能正常使用。

你可以在AndroidManifest.xml文件中添加以下权限声明:

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

如果还是出现该错误提示,可以尝试在代码中动态获取该权限,如下所示:

if (ContextCompat.checkSelfPermission(this, Manifest.permission.WAKE_LOCK)
        != PackageManager.PERMISSION_GRANTED) {
    // Permission is not granted, request it
    ActivityCompat.requestPermissions(this,
            new String[]{Manifest.permission.WAKE_LOCK},
            MY_PERMISSIONS_REQUEST_WAKE_LOCK);
} else {
    // Permission has already been granted
    // TODO: start JobIntentService
}

另外,如果你的应用运行在Android 6.0及以上版本,还需要在代码中动态请求该权限,否则会出现java.lang.SecurityException异常。

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
    if (!Settings.System.canWrite(this)) {
        Intent intent = new Intent(Settings.ACTION_MANAGE_WRITE_SETTINGS,
                Uri.parse("package:" + getPackageName()));
        startActivityForResult(intent, MY_PERMISSIONS_REQUEST_WRITE_SETTINGS);
    } else {
        // Permission has already been granted
        // TODO: start JobIntentService
    }
}

希望以上解决方案能够帮助你解决问题。


原文地址: https://www.cveoy.top/t/topic/tdA 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录