0

是否可以使用向服务中的用户询问运行时权限的功能。我在服务方面工作不多,所以我不知道有人能帮忙。

因为它会要求用户授予该权限,例如在此处输入图像描述

4

2 回答 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 回答