如何判断哪个引用在Xamarin Android中添加权限?

问题描述:

在我最后的AndroidManifest,Droid\obj\Debug\android\manifest\AndroidManifest.xml下找到,我有如何判断哪个引用在Xamarin Android中添加权限?

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

然而,我的主要项目没有列出的权限。事实上,我的整个解决方案中都没有出现“互联网”这个词!

this forum post

任何库可以设置需要的权限,它可以自动编译

过程中得到补充,但我不知道如何分辨哪个库将它们添加!所以我怎样才能找出哪个库正在为我的应用程序添加权限?

+0

温你在Debug conf中编译,存储和internetbare自动添加。可以做一个发布版本,看看他们是否在那里? –

您正在显示的清单的路径显示您正在编译调试配置

在调试模式下,将自动添加InternetStorage,如documented here(最后一段)所示。

尝试编译发布版本,他们应该消失。


附加权限由把一个UsesPermissionAttributeAssemblyInfos.cs加入。

你可以阅读那些使用反射,如this answer

我不知道如何从编译后的程序集中看到VS中的那些属性。如果有人给出提示,我会在这里添加它。

+0

如需进一步参考,请特别在'xamarin-android'的ManifestDocument.cs代码中:https://github.com/xamarin/xamarin-android/blob/a8f7db057334be3124cabccd2cb2fd7dcf45f458/src/Xamarin.Android.Build.Tasks /Utilities/ManifestDocument.cs#L298-L302 –

+0

就是这样,谢谢!但是,对于未来发现这个问题的谷歌玩家,你是否知道标题问题的答案? –

+0

使用反射,通过查找权限。我更新了答案。 –