已遵循迁移说明,并将以下行添加到清单中:
<uses-permission android:name="android.permission.FOREGROUND_SERVICE"/>
我无法弄清楚为什么我的测试用例失败了,而没有授予权限android.permission.FOREGROUND_SERVICE
(至少在运行时检查了权限)。
基于docs,该状态指出android.permission.FOREGROUND_SERVICE
应该由系统自动授予。
想要使用前台服务的应用现在必须请求 首先是FOREGROUND_SERVICE权限。这是正常权限,所以 系统会自动将其授予请求的应用程序。
有人可以解释为什么测试用例(使用以下代码的变体)失败了吗?
assert (ActivityCompat.checkSelfPermission(activity, "android.permission.FOREGROUND_SERVICE") == PackageManager.PERMISSION_GRANTED)
是的!我没有抛出任何SecurityException
。这使我怀疑我应该在运行时检查权限的方式。
我想念什么?
答案 0 :(得分:1)
之所以失败,是因为您可能在API <28的设备上运行它。此方法字段仅适用于API 28及更高版本。如果您以Manifest.permission.FOREGROUND_SERVICE
而不是纯字符串的形式编写文字,则Android Studio会警告您。
答案 1 :(得分:0)
$('input[name="datefilter"]').daterangepicker({
autoUpdateInput: false,
format: "yyyy-mm-dd",
locale: {
"format" : 'YYYY/MM/DD',
"separator": " - ",
"applyLabel": "Apply",
"cancelLabel": "Cancel",
"fromLabel": "From",
"customRangeLabel": "Custom",
"daysOfWeek": ["SUN","MON","TUE","WED","THE","FRI","SAT"]
}
});
不是FOREGROUND_SERVICE
权限。因此,它与运行时权限系统和类似dangerous
之类的方法无关。