如何在Android Unity app

时间:2016-04-20 22:39:29

标签: android unity3d permissions

我们的Unity应用程序不使用任何类型的位置服务,但它会部署在AndroidManifest.xml中。由于我们的目标sdk版本设置为23,它会在运行时请求权限,因为我们不使用它,所以我们不需要具体的GPS位置权限,但我相信Unity添加因为可能是某些第三方库我们使用可能是引用它但我不确定为什么它被添加到清单xml。试图从清单中评论下面的代码行,但这不起作用,它仍然会抛出运行时权限提示

>  <!-- <uses-permission
> android:name="android.permission.ACCESS_COARSE_LOCATION" /> -->

如果我将目标sdk设置为22(在安装时切换回旧的权限模型),则会抛出构建错误,因为它说android sdk工具当前使用的是sdk版本23。

我知道我们可以撤消设置菜单中的权限,但这并不能解决我们的问题

有没有办法在构建时以任何方式在运行时撤销ACCESS_COARSE_LOCATION或ACCESS_FINE_LOCATION权限提示?

1 个答案:

答案 0 :(得分:2)

SDK版本23 = Android M 。 Android M会在运行时期间检查权限,而不是安装时间。我知道获取此功能的唯一方法是访问 源代码,并评论/删除任何获取设备位置的代码。

首先,找出哪个插件通过删除项目中的所有插件并逐个将其重新带回来获取权限。如果您发现包含位置问题的插件,请向插件提供商咨询源代码

如果您无法获取源代码,您可以反编译 jar或aar文件,并删除代码中的部分代码包含位置/ GPS代码,然后重新编译它回到jar或aar文件。