Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/219.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 无法创建服务java.lang.SecurityException:";全球定位系统;位置提供程序需要访问\u精细\u位置权限_Android - Fatal编程技术网

Android 无法创建服务java.lang.SecurityException:";全球定位系统;位置提供程序需要访问\u精细\u位置权限

Android 无法创建服务java.lang.SecurityException:";全球定位系统;位置提供程序需要访问\u精细\u位置权限,android,Android,我正在编写一个Android教程,创建里程表服务: 似乎我需要明确地向用户请求使用位置服务的权限。 但这似乎适用于扩展ActivityCompat的活动。我的主要活动是扩展活动 在扩展活动类时,有人举过如何实现requestPermissions()的例子吗?它到底会去哪里…在课堂上还是在onCreate中 谢谢ContextCompat是从android.support.v4库派生的公共类,它与AppCompat活动无关。要检查Android版本23及更高版本的权限,请执行以下操作: pri

我正在编写一个Android教程,创建里程表服务:

似乎我需要明确地向用户请求使用位置服务的权限。

但这似乎适用于扩展ActivityCompat的活动。我的主要活动是扩展活动

在扩展活动类时,有人举过如何实现requestPermissions()的例子吗?它到底会去哪里…在课堂上还是在onCreate中


谢谢

ContextCompat是从android.support.v4库派生的公共类,它与AppCompat活动无关。要检查Android版本23及更高版本的权限,请执行以下操作:

private void getPermission(String permission, Integer requestCode) {
    if (ContextCompat.checkSelfPermission(test_activity.this, permission) != PackageManager.PERMISSION_GRANTED) {
        ActivityCompat.requestPermissions(test_activity.this, new String[]{permission}, requestCode);
    } else {
        Toast.makeText(this, "" + permission + " is already granted.", Toast.LENGTH_SHORT).show();
    }
 }
然后调用
onCreate
中的方法:

getPermission(android.Manifest.permission.ACCESS\u FINE\u位置,requestCode)

然后重写onRequestPermissionsResult并处理结果:

@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
    super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if(ActivityCompat.checkSelfPermission(this, permissions[0]) == PackageManager.PERMISSION_GRANTED){
    switch (requestCode) {
        //Location
        case 1:
            // do something
            break;
    }
  else
 {
 Toast.makeText(this, "Permission denied", Toast.LENGTH_SHORT).show();
 }
}

活动
具有
请求权限
方法。。。