用户首次登录时,React原生Android询问相机权限

6pp0gazn  于 2023-01-27  发布在  React
关注(0)|答案(1)|浏览(130)

我不熟悉安卓和ios的react原生应用权限,我在这个项目中需要视频通话的摄像头和音频权限,这些权限已经实现并且运行良好。
问题是,目前这些权限是在用户第一次进入视频通话时询问的,这会导致视频通话流程的延迟和错误。我希望在用户第一次打开应用程序时询问这些权限(他们首先进入个人资料或 Jmeter 板,视频通话部分发生在之后),就像我见过的其他应用程序一样。
这是处理权限的androidManifest.xml文件。我曾寻找一种方法来更改权限,但我找不到任何与当前格式相关的内容,由于这对我来说是新的,我不想完全意外地更改行为。

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
  package="com.rectnativetemplate">

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.CAMERA" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.RECORD_AUDIO"/>
    <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
    

    <application
      android:name=".MainApplication"
      android:usesCleartextTraffic="true"
      android:label="@string/app_name"
      android:requestLegacyExternalStorage="true"
      android:icon="@mipmap/ic_launcher"
      android:roundIcon="@mipmap/ic_launcher_round"
      android:allowBackup="false"
      android:theme="@style/AppTheme">
      <activity
        android:name=".MainActivity"
        android:label="@string/app_name"
        android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
        android:launchMode="singleTask"
        android:windowSoftInputMode="adjustPan">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
        <intent-filter>
            <action android:name="android.intent.action.VIEW" />
            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.BROWSABLE" />
            <data
                android:host="dev--b45llct.us.auth0.com"
                android:pathPrefix="/android/${applicationId}/callback"
                android:scheme="${applicationId}" />
        </intent-filter>
      </activity>

------------

      <activity android:name="com.facebook.react.devsupport.DevSettingsActivity" />
    </application>

</manifest>

有没有办法在用户第一次进入应用程序时询问权限?如果可能,我如何在IOS上实现同样的行为?

rxztt3cl

rxztt3cl1#

使用PermissionsAndroid中的request

const granted = await PermissionsAndroid.request(PermissionsAndroid.PERMISSIONS.CAMERA);
if (granted === PermissionsAndroid.RESULTS.GRANTED) {
  console.log('Camera permission granted');
} else {
  console.log('Camera permission denied');
}

相关问题