是否可以使用向服务中的用户询问运行时权限的功能。我在服务方面工作不多,所以我不知道有人能帮忙。
问问题
259 次
2 回答
1
是否可以使用向服务中的用户询问运行时权限的功能。
您可以在服务中使用需要 dangerous
权限的API 。但是,您不能从服务请求权限 - 您必须从Activity
.
于 2015-11-17T14:08:28.073 回答
0
我已经通过以下代码完成了这项工作,到目前为止它对我来说效果很好,没有任何错误
在您启动服务的活动中
if(GivenPermissions()) {
Intent i = new Intent(this,ServiceClassName);
startService(i);
}
方法代码是
private boolean GivenPermissions() {
int hasLocationPermission1 = ActivityCompat.checkSelfPermission(this,Manifest.permission.ACCESS_FINE_LOCATION);
int hasLocationPermission2 = ActivityCompat.checkSelfPermission(this,Manifest.permission.ACCESS_COARSE_LOCATION);
List<String> permissions = new ArrayList<String>();
if (hasLocationPermission1 != PackageManager.PERMISSION_GRANTED) {
permissions.add(Manifest.permission.ACCESS_FINE_LOCATION);
}
if (hasLocationPermission2 != PackageManager.PERMISSION_GRANTED) {
permissions.add(Manifest.permission.ACCESS_COARSE_LOCATION);
}
if (!permissions.isEmpty()) {
ActivityCompat.requestPermissions(this, permissions.toArray(new String[permissions.size()]), REQUEST_CODE_ASK_PERMISSIONS);
return false;
}
return true;
}
因此,如果授予权限仅启动服务。希望这可能会有所帮助
于 2016-03-16T06:42:32.933 回答