web-dev-qa-db-ja.com

博覧会でカメラロールの許可がありません

「画像変更」ボタンがあり、カメラロールを使用して画像を変更したい。
しかし、カメラロールを使用する権限がないという警告が表示されます。
許可が与えられているかどうかを確認するにはどうすればよいですか?そうでない場合は許可を求めたいと思います。

これは今のところ私のコードです:

    _pickImage = async () => {
        let result = await ImagePicker.launchImageLibraryAsync({
          allowsEditing: true,
          aspect: [4, 3],
        });
    
        console.log(result);
    
        if (!result.cancelled) {
          this.setState({ image: result.uri });
        }
    };

これは非常にばかげた質問かもしれませんが、私はここで少し混乱しています...

さらに情報が必要な場合はコメントしてください。

ありがとう!

5
crodev

Expoを使用している場合は、ExpoからPermissionを取得できます。彼らのドキュメントに従ってください、それは素晴らしいです!

次のようになります。

import { Permissions } from 'expo';

async componentDidMount() {
  const permission = await Permissions.getAsync(Permissions.CAMERA_ROLL);
  if (permission.status !== 'granted') {
      const newPermission = await Permissions.askAsync(Permissions.CAMERA_ROLL);
      if (newPermission.status === 'granted') {
        //its granted.
      }
  } else {
   ....your code
  }
}

リンク先 Expo

私はいくつかの新しいコードで編集しました。 askAsyncを完全に使用することもできます。ドキュメントはとても役に立ちます!

14

Permissionsは非推奨になり、MediaLibraryリンク

Expo-cliを最新バージョンに更新してみてください

npm install -g expo-cli

エキスポSDKバージョンも

expo update "version-number"
0
Frawel