android6.0 動態申請許可權
阿新 • • 發佈:2019-02-02
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 }