某应用的主activity里面oncreate加入
if(ContextCompat.checkSelfPermission(this,
Manifest.permission.ACCESS_FINE_LOCATION) !=PackageManager.PERMISSION_GRANTED
) {
ActivityCompat.requestPermissions(this, newString[]{Manifest.permission. ACCESS_FINE_LOCATION }, 1);
}
注意,先check后request,如果request的权限事先没有request,实测不会生效,都不会生效
一般权限给的不止一个,比如给定位权限,有三个都给一下
Manifest.permission.ACCESS_FINE_LOCATION) Manifest.permission.ACCESS_COARSE_LOCATION)
Manifest.permission.ACCESS_BACKGROUND_LOCATION
,总之参照framework下的defaultpermissiongrantpolicy来看
主要是导包
import android.content.pm.PackageManager;
import android.Manifest;
import android.support.v4.content.ContextCompat;
import android.support.v4.app.ActivityCompat;
最后这两个是系统源码依赖的包,不同于正常开发第三方app,导的是
import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;