如何判断哪个引用在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" />
然而,我的主要项目没有列出的权限。事实上,我的整个解决方案中都没有出现“互联网”这个词!
任何库可以设置需要的权限,它可以自动编译
过程中得到补充,但我不知道如何分辨哪个库将它们添加!所以我怎样才能找出哪个库正在为我的应用程序添加权限?
您正在显示的清单的路径显示您正在编译调试配置。
在调试模式下,将自动添加Internet
和Storage
,如documented here(最后一段)所示。
尝试编译发布版本,他们应该消失。
附加权限由把一个UsesPermissionAttribute
到AssemblyInfos.cs
加入。
你可以阅读那些使用反射,如this answer。
我不知道如何从编译后的程序集中看到VS中的那些属性。如果有人给出提示,我会在这里添加它。
如需进一步参考,请特别在'xamarin-android'的ManifestDocument.cs代码中:https://github.com/xamarin/xamarin-android/blob/a8f7db057334be3124cabccd2cb2fd7dcf45f458/src/Xamarin.Android.Build.Tasks /Utilities/ManifestDocument.cs#L298-L302 –
就是这样,谢谢!但是,对于未来发现这个问题的谷歌玩家,你是否知道标题问题的答案? –
使用反射,通过查找权限。我更新了答案。 –
温你在Debug conf中编译,存储和internetbare自动添加。可以做一个发布版本,看看他们是否在那里? –