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