- 網絡定位權限為
Manifest.permission.ACCESS_COARSE_LOCATION
在Activity中檢查
if (Build.VERSION.SDK_INT >= 23) {
int checkPermission = ContextCompat.checkSelfPermission(getActivity(), Manifest.permission.ACCESS_COARSE_LOCATION);
if (checkPermission != PackageManager.PERMISSION_GRANTED) {
//沒有獲取權限谒府,發(fā)起申請
ActivityCompat.requestPermissions(getActivity(), new String[]{Manifest.permission.ACCESS_COARSE_LOCATION}, 1);
} else {
//doing everything what you want
}
}
在Activity中重寫以下方法
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
if (requestCode == 1) {
if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
//發(fā)起定位
initLocation();
} else {
ToastUtils.showShortToast("您拒絕了定位權限");
}
}
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
}
在Fragment中檢查權限
- fragmetn中發(fā)起權限申請與Activity操作有一點不同艇纺,不過也不容忽視,若是不小心手一抖寫錯了方法媚污,是不會執(zhí)行回調方法的........
if (Build.VERSION.SDK_INT >= 23) {
int checkPermission = ContextCompat.checkSelfPermission(getActivity(), Manifest.permission.ACCESS_COARSE_LOCATION);
if (checkPermission != PackageManager.PERMISSION_GRANTED) {
//沒有獲取權限舀瓢,發(fā)起申請,不同之處
requestPermissions(new String[]{Manifest.permission.ACCESS_COARSE_LOCATION}, 1);
} else {
//doing everything what you want
}
}
- 在fragment中重寫
onRequestPermissionsResult()
方法耗美,和Activity中做法一致
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
if (requestCode == 1) {
if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
//發(fā)起定位
initLocation();
} else {
ToastUtils.showShortToast("您拒絕了定位權限");
}
}
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
}
博客
其他權限后面持續(xù)更新.......京髓,歡迎 關注