繁体   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