当android FusedLocationApi.requestLocationUpdates需要检查权限时?

时间:2016-05-27 18:27:54

标签: java android

我正在编写需要进行位置更新的项目,当我调用requestLocationUpdates方法时,它需要检查权限,所以我以这种方式实现了它:

 private void startLocationUpdates(){
    if (Build.VERSION.SDK_INT > Build.VERSION_CODES.LOLLIPOP) {
        if (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION)
                == PackageManager.PERMISSION_GRANTED) {
            LocationServices.FusedLocationApi.requestLocationUpdates(mGoogleApiClient, locationRequest, MapsActivity.this);
        } else {
            requestPermissions(new String[]{Manifest.permission.ACCESS_FINE_LOCATION}, REQUEST_FINE_LOCATION);
        }
    }

}

但我在google的示例代码中看到他们没有检查权限,也没有出现错误或警告。

 protected void startLocationUpdates() {
    // The final argument to {@code requestLocationUpdates()} is a LocationListener
    // (http://developer.android.com/reference/com/google/android/gms/location/LocationListener.html).
    LocationServices.FusedLocationApi.requestLocationUpdates(
            mGoogleApiClient, mLocationRequest, this);
}

它的targetSdkVersion是22,我把它更正为23;但它仍然不需要许可。 我的问题是当LocationServices.FusedLocationApi.requestLocationUpdates方法请求权限时? P.S googles完整的示例代码:google sample

修改: 我的gradle文件:

apply plugin: 'com.android.application'
android {
compileSdkVersion 23
buildToolsVersion "23.0.1"

defaultConfig {
    applicationId "com.example.gio.autostop"
    minSdkVersion 9
    targetSdkVersion 23
    versionCode 1
    versionName "1.0"
}
buildTypes {
    release {
        minifyEnabled false
        debuggable true
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}
}

dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:23.3.0'
compile 'com.google.android.gms:play-services:8.4.0'
}

0 个答案:

没有答案