0

Wi-Fi情報にアクセスしようとしているSamsung Galaxy S7デバイスがあります。フラグメントから実行時に許可を要求しようとしていますが、ポップアップが表示されません。

これが私がやろうとしていることのコードです

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 );
        }
    }

フラグメントでアクセス許可を要求できませんか? これはアクティビティで行う必要がありますか?

4

2 に答える 2

1

ACCESS_NETWORK_STATEACCESS_WIFI_STATEおよびCHANGE_WIFI_STATE危険なアクセス許可ではなく、実行時に要求する必要はありません。実際にリクエストする必要がありManifest.permission.ACCESS_COARSE_LOCATIONます。

サポート v4 フラグメントには、フラグメントのonRequestPermissionsResult()へのコールバックを取得する唯一の方法であるrequestPermissions()メソッドが含まれていることに注意してください (このメソッドを使用すると、アクセス許可の結果がアクティビティに送信されるだけです)。ActivityCompat

requestPermissions(
    new String[] { Manifest.permission.ACCESS_COARSE_LOCATION },
    PERMISSIONS_REQUEST_CODE_ACCESS_COARSE_LOCATION );
于 2016-11-01T17:03:15.093 に答える