[英]Xamarin.Android Internet Permission
我正在使用Visual Studio 2015(最低sdk版本14)。我到處都讀到,在構建發行版本之后,您需要在清單中指定互聯網權限。 (盡管有人說,僅當您的Android版本低於x版本時才需要)。
這是我的清單的摘錄:
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<application android:label="<app name>" android:icon="@drawable/icon"></application>
問題是,當直接從Visual構建並運行到我的設備時,我無法從我的應用訪問互聯網。
在設備的應用程序管理器中,我可以看到分配給我的應用程序的權限如下(無論是從Visual Studio部署還是從Google Play安裝):
-修改或刪除USB存儲設備的內容
-完全網絡訪問
-查看網絡連接
另一方面,將應用程序上載到Goolge Play(阿爾法測試)時,當我單擊手機中的“安裝”時,顯示該應用程序將要使用的權限的彈出窗口顯示其需要的權限是“訪問照片/媒體/文件”
[編輯]我的應用訪問互聯網的方式是通過PCL項目。 基本上,這是完成(或不完成)所有魔術的代碼塊。
try
{
if (CheckIfThereIsConnection())
{
HttpWebRequest request = WebRequest.Create(urlRequest) as HttpWebRequest;
request.Headers[HttpRequestHeader.Authorization] = "my token here";
using (WebResponse response = await request.GetResponseAsync())
{
using (Stream stream = response.GetResponseStream())
{
StreamReader reader = new StreamReader(stream);
string line = string.Empty;
StringBuilder sb = new StringBuilder();
while ((line = reader.ReadLine()) != null)
{
sb.Append(line);
}
T deserializedObject = JsonConvert.DeserializeObject<T>(sb.ToString());
return deserializedObject;
}
}
}
}
catch (Exception ex)
{
throw new Exception("My custom Exception", ex.InnerException);
}
我到處都在尋找運氣。 有人可以為我提供進一步詳細的解釋,還是指出一些文檔供我參考?
您很可能遇到Linker
剝離了應用程序所需內容的問題。 我強烈建議您在此處查看有關此主題的文檔:
https://developer.xamarin.com/guides/android/advanced_topics/linking/#Linker_Behavior
然后,您可以嘗試使用linkskip
( https://developer.xamarin.com/guides/android/advanced_topics/linking/#linkskip )或自定義鏈接器配置文件( https://developer.xamarin.com/guides/cross- platform / advanced / custom_linking / ),以確保您的程序集包含在最終程序包中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.