为什么unityplayer.SkipPermissionsDialog无法与unity 2018.3.14一起使用?

时间:2020-03-06 17:33:54

标签: unity3d vuforia user-permissions

我正在用unitu和vuforia开发应用程序,并且我使用

<meta-data android:name=“unityplayer.SkipPermissionsDialog” android:value=“true”>
Manifest.xml中的

跳过启动权限.Unity 5.1.1中的我的应用程序导出(apk)可以正常工作,但是在untiy 2018.3.14中无法正常工作。我将创建另一个具有Unity 2018.3.14的项目并进行编辑上面带有一行的manifest.xml文件,但它仍在启动时要求获得相机许可。

这是我的manifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest
    xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.unity3d.player"
    xmlns:tools="http://schemas.android.com/tools"
    android:installLocation="preferExternal">
    <supports-screens
        android:smallScreens="true"
        android:normalScreens="true"
        android:largeScreens="true"
        android:xlargeScreens="true"
        android:anyDensity="true"/>
  <uses-sdk android:minSdkVersion="21" android:targetSdkVersion="26" />
  <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
  <uses-permission android:name="android.permission.CAMERA" />
  <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
    <application
        android:theme="@style/UnityThemeSelector"
        android:icon="@mipmap/app_icon"
        android:label="@string/app_name">
        <activity android:name="com.unity3d.player.UnityPlayerActivity"
                  android:label="@string/app_name"
                  android:hardwareAccelerated="true">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
            <meta-data android:name="unityplayer.UnityActivity" android:value="true" />
        </activity>
      <!-- For Runtime Permission -->
      <meta-data android:name="unityplayer.SkipPermissionsDialog" android:value="true" />
      <activity android:name="com.onevcat.uniwebview.UniWebViewFileChooserActivity" />

    </application>  
</manifest>

请帮忙吗?

2 个答案:

答案 0 :(得分:0)

首次猜测

如果您设置了unityplayer.SkipPermissionsDialog,Unity将在应用启动后不再直接寻求许可。

但是Vuforia会在启用AR摄像头后立即动态请求运行时权限。 我猜您是在第一个场景中使用AR相机吗?

更新1

尝试将AndroidManifest.xml中的unityplayer.SkipPermissionsDialog移动到活动标签(而不是应用程序标签)内。

答案 1 :(得分:0)

所以,我尝试另一种解决问题的方法。

1-选中“延迟初始化”框(“窗口”->“ Vuforia配置”)。

2-通常使用<meta-data android:name=“unityplayer.SkipPermissionsDialog” android:value=“true”>并在需要时请求权限。

3-将这行代码添加到此新脚本的Start()函数中,并将其分配给空的游戏对象:

VuforiaRuntime.Instance.InitVuforia();

4-因此,当用户允许权限时,我加载第二个场景并运行Vuforia初始化。