Unity中的Android网络权限

10

默认情况下,Unity似乎不会放置

<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

为生成AndroidManifest.xml文件,我的项目需要这些权限。谷歌没有直接回答我,这可行吗?

3个回答

26

进入 编辑 -> 项目设置 -> 播放器。选择Android,构建设置,将互联网访问自动更改为必需。您不必这样做,因为当您使用任何网络API时Unity会自动执行此操作。

输入图像描述

如果这对您来说还不够,那么您可以手动修改Android AndroidManifest。

1. 打开Unity. 只需要构建一次您的Android项目即可。不要关闭它。

2. 进入您的项目目录。在步骤1后,Unity会创建一个名为Temp的新文件夹。在Temp中有另一个名为StagingArea的文件夹。进入StagingArea文件夹并将名为AndroidManifest.xml的文件复制到计算机中的另一个文件夹中。修改/添加自己的自定义权限,就像问题中的那些权限一样。

3. 现在将修改后的AndroidManifest.xml文件移动到 您的项目目录 -> 资产 -> 插件 -> Android。如果插件Android文件夹不存在,则创建它们。

享受吧!


2
太棒了!感谢第一种方法,我不知道为什么谷歌没有引导我到一些官方文档。第二个解决方案有点复杂,实际上直到现在我一直在使用它,除了一件事:我从另一个地方选择AndroidManifest - 从/Applications/Unity/PlaybackEngines/AndroidPlayer/Apk/AndroidManifest.xml(这是在OS X环境下) - DeepThought
3
@DeepThought Unity没有完整的文档说明。我建议你掌握第二种解决方案。当你制作自己的插件时,如果出现清单冲突或者想要在Unity中使用不可用的权限,你将需要它。如果你重复3到5次,就会习惯了。只需要复制文件,修改它,并将其放入另一个目录即可。 - Programmer
AndroidManifest.xml已不再存在于StagingArea文件夹中。截至2020年11月,Unity关于清单文件的文档,请参阅https://docs.unity3d.com/Manual/android-manifest.html。 - Morten Nørgaard

1

使用 Unity 2019.3 或更高版本 的人......(docs.unity3d.com/Manual/android-manifest.html)

不知道我做的是否正确,但它起作用了。

我在 AndroidManifest 中添加了权限,方法如下:

按照 @Programmer 的步骤进行,但在第二步中,我进入了 YourUnityProject\Temp\gradleOut\unityLibrary\src\main 而不是 StagingArea 文件夹 -> AndroidManifest.xml

此外,我删除了一个额外的"-",在"<manifest xmls..."之前。不知道你是否也会遇到这个错误。


0

从Unity 2021.2开始,您可以按照以下步骤生成一个AndroidManifest.xml

  1. 转到编辑 > 项目设置以打开项目设置窗口。
  2. 选择播放器选项卡,然后打开Android播放器设置。
  3. 发布设置部分中,启用自定义主清单

这将创建一个Android应用程序清单文件并显示文件路径。有关Android应用程序清单的格式和其配置的设置的信息,请参阅Android应用程序清单上的Android开发人员文档。

然后,您可以向其添加所需的权限。

文档


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接