为啥 unityplayer.SkipPermissionsDialog 不能与统一 2018.3.14 一起使用?
Posted
技术标签:
【中文标题】为啥 unityplayer.SkipPermissionsDialog 不能与统一 2018.3.14 一起使用?【英文标题】:Why unityplayer.SkipPermissionsDialog not working with unity 2018.3.14?为什么 unityplayer.SkipPermissionsDialog 不能与统一 2018.3.14 一起使用? 【发布时间】:2020-03-06 17:33:54 【问题描述】:我正在使用 unity 和 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>
有什么帮助吗?
【问题讨论】:
【参考方案1】:初步猜测
如果您设置了unityplayer.SkipPermissionsDialog
,Unity 将不会在应用启动后直接请求权限。
但 Vuforia 会在启用 AR 相机时动态请求运行时权限。 我猜你在第一个场景中使用的是 AR 相机?
更新 1
尝试将 AndroidManifest.xml 中的 unityplayer.SkipPermissionsDialog
移动到活动标记而不是应用程序标记内。
【讨论】:
我在第二个场景中使用 AR 相机。我的另一个使用 unity5.1.1 的项目也可以正常工作,另外我在 unity2018.3.14 中创建空项目并在第二场景中使用 AR 相机,但我遇到了同样的问题。谢谢 @Rooz 尝试将 AndroidManifest.xml 中的 unityplayer.SkipPermissionsDialog 移动到活动标签而不是应用程序标签内。 我在发布此问题之前尝试过,但不起作用。请检查forum.unity.com/threads/… 你能用到目前为止你已经尝试过的所有内容更新你的问题吗? 感谢您的帮助。但最后我尝试了另一种方法来解决问题。【参考方案2】:所以,我尝试了另一种方法来解决问题。
1- 选中延迟初始化框(窗口->Vuforia 配置)。
2- 正常使用<meta-data android:name=“unityplayer.SkipPermissionsDialog” android:value=“true”>
并在需要时请求权限。
3- 将这行代码添加到这个新脚本的 Start() 函数中,并将其分配给空的游戏对象:
VuforiaRuntime.Instance.InitVuforia();
4- 因此,当用户允许时,我会加载第二个场景并运行 Vuforia 初始化。
【讨论】:
以上是关于为啥 unityplayer.SkipPermissionsDialog 不能与统一 2018.3.14 一起使用?的主要内容,如果未能解决你的问题,请参考以下文章
为啥 DataGridView 上的 DoubleBuffered 属性默认为 false,为啥它受到保护?