android6.0 动态申请权限

来源:互联网 发布:网盘搜索 知乎 编辑:程序博客网 时间:2024/05/02 04:20

android6.0 之前,app权限的申请都是在manifest中声明即可。

android6.0开始增加权限动态监测和申请。

尤其是使用androidstudio开发程序,如果在调用权限接口之前,没有申请权限,就无法编译

以gps 为例,权限申请方式如下:

if (Build.VERSION.SDK_INT >= 23) {    int checkPermission = ContextCompat.checkSelfPermission(MainActivity.this, Manifest.permission.ACCESS_COARSE_LOCATION);    if (checkPermission != PackageManager.PERMISSION_GRANTED) {        ActivityCompat.requestPermissions(MainActivity.this, new String[]{Manifest.permission.ACCESS_COARSE_LOCATION}, 1);        ActivityCompat.requestPermissions(MainActivity.this, new String[]{Manifest.permission.ACCESS_FINE_LOCATION}, 1);        Log.d("TTTT", "弹出提示");    }}
然后才可调用

location = lm.getLastKnownLocation(bestProvider);
编译才能通过。

申请权限回调

@Overridepublic void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {    super.onRequestPermissionsResult(requestCode, permissions, grantResults);    Log.e(TAG,"onRequestPermissionsResult");    //requestpermisiion result , permission}
以后的操作可以在这里进行。
0 0