我有三星Galaxy S7设备,我正在尝试访问wifi信息。我正在尝试从片段中请求运行时权限,但弹出窗口不会显示。
以下是我正在尝试做的代码
private static final int PERMISSIONS_REQUEST_CODE_ACCESS_COARSE_LOCATION = 1001;
private void requestPermissions() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M &&
getActivity().checkSelfPermission(Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(getActivity(),new String[]{Manifest.permission.ACCESS_NETWORK_STATE,
Manifest.permission.ACCESS_WIFI_STATE,
Manifest.permission.CHANGE_WIFI_STATE},
PERMISSIONS_REQUEST_CODE_ACCESS_COARSE_LOCATION );
}
}
您是否可以请求片段中的权限?这必须在活动中完成吗?
答案 0 :(得分:1)
ACCESS_NETWORK_STATE
,ACCESS_WIFI_STATE
和CHANGE_WIFI_STATE
不是危险权限,不需要在运行时请求。您需要实际申请Manifest.permission.ACCESS_COARSE_LOCATION
。
请注意,支持v4片段包含requestPermissions()方法,这是您获得片段onRequestPermissionsResult()回调的唯一方法(使用ActivityCompat
方法只会发送权限结果参加活动。)
requestPermissions(
new String[] { Manifest.permission.ACCESS_COARSE_LOCATION },
PERMISSIONS_REQUEST_CODE_ACCESS_COARSE_LOCATION );
答案 1 :(得分:0)
是的,您可以从内部片段尝试
请求权限requestPermissions(permissions, PERMISSIONS_CODE);
如果要处理内部片段
中的用户选择,请尝试以下代码FragmentCompat.requestPermissions(permissions,PERMISSIONS_CODE);