簡體   English   中英

Xamarin.Android Internet權限

[英]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

然后,您可以嘗試使用linkskiphttps://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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM