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);编译才能通过。
申请权限回调
@Override public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { super.onRequestPermissionsResult(requestCode, permissions, grantResults); Log.e(TAG,"onRequestPermissionsResult"); //requestpermisiion result , permission }以后的操作可以在这里进行。