2016-08-20 61 views
1

在我最後的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自動添加。可以做一個發佈版本,看看他們是否在那裏? –

回答

1

您正在顯示的清單的路徑顯示您正在編譯調試配置

在調試模式下,將自動添加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

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