1. 程式人生 > >android6.0 動態申請許可權

android6.0 動態申請許可權

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 }
以後的操作可以在這裡進行。