【React Native】Androidで各パーミッションをリクエストする

今回は、タイトルにある通り React Native で開発している Android アプリに、カメラやストレージなどのパーミッションをリクエストする方法についてです。
アルバムから画像を選択したり、カメラで撮影する機能を実装する際に利用しました。

公式サイトのドキュメントはこちらから。

PermissionsAndroid · React Native
https://reactnative.dev/docs/permissionsandroid

 

さて実装方法ですが、例えばカメラのパーミッションリクエストをする場合は下記のとおりです。
なお、必要最低限の記述のみを抜粋しておりますので、ご注意ください。

まず下記をインポートします。

import { PermissionsAndroid, Platform } from 'react-native';

次に、カメラの利用をリクエストしたいタイミングで下記を利用します。

if (Platform.OS === 'android') {
  const permission = PermissionsAndroid.PERMISSIONS.CAMERA;
  const hasPermission = await PermissionsAndroid.check(permission);
  if (!hasPermission) {
    const status = await PermissionsAndroid.request(permission);
    if (status === PermissionsAndroid.RESULTS.GRANTED) {
      console.log("カメラを使用できます");
    } else {
      console.log("カメラの使用が拒否されました");
    }
  }
}

追加する処理は以上です!
上記を追加して実行したところ、指定したタイミングでカメラの使用許可を確認するダイアログが表示されることを確認できました!

なお、コードからもわかるように、iOS ではこちらの処理が実行されないようにしているので、別途 iOS 用のパーミッションリクエストは実装する必要があると思われます。
まだ未確認ですが、info.plist に追加すればいいのでしょうか…。
こちらはこれから調査したいと思います!

 

以上、React Native で開発している Android アプリで各機能のパーミッションをリクエストする処理を実装する方法でした。
ご参考になれば幸いです。

>株式会社シーポイントラボ

株式会社シーポイントラボ

TEL:053-543-9889
営業時間:9:00~18:00(月〜金)
住所:〒432-8003
   静岡県浜松市中央区和地山3-1-7
   浜松イノベーションキューブ 315
※ご来社の際はインターホンで「316」をお呼びください

CTR IMG