Android网络相关总结
以应用HttpRequest_Example应用为例,了解其如何向USGS服务发出Http请求并接收响应
网络简介
Http请求 中包含了统一资源定位符号,也叫URL,这是我们想要获取数据源的地址或者位置,
URL中第一部分是协议:通常情况下是http或https;下一部分是主机;再下一部分是资源路径;最后一部分叫做查询,问号表示查询的开头。
HTTP请求包括URL以及一些其他的信息, 例如我们想对数据执行的操作,设别的相关信息和提出请求等,全部请求将打包在一起,就像在信封中粘附信息,HTTP请求就像带有目的地和回信地址的信封,将请求打包后,Android会提供一项功能,帮助发送人通过网络将消息传递到正确的web服务器。
可将网络看作数字化邮政服务,网络实际上就是以某种方式连接在一起以实现通信的两台或多台计算机(所有计算设备,手机,笔记本电脑,服务器), Web服务器只是网络上的另一台计算机或者另一组计算机,运行响应Http请求的程序。另一方面,你的手机可以作为客户端,客户端从服务器请求信息,然后为用户显示结果,当web服务器收到请求时,可能会生成一个HTML web页面来返回到发送人以供显示,或返回结构化数据,给以JSON、XML等格式构建的应用使用,将数据显示给用户。
web浏览器可以渲染屏幕的web页面,手机应用可以解析出需要在屏幕上显示的有用信息的部分数据。
HttpRequest_Example主要包括几个部分:
1.如何基于 想要的信息和从想要获取请求的位置生成合适的Http请求
2.向服务器发送请求,服务器可处理请求并生成要发送回合适的响应
3.Android客户端如何处理或者解析响应,以及如何将响应转换为可识别的格式
4.在应用中更新UI以便为用户显示结果
Android权限(Internet权限)
你的应用需要请求可在用户设备上执行受保护操作的权限,受保护操作包括:创建网络连接、访问照相机、设置SMS消息、拨打电话、通过麦克风录音、确定用户的位置、当设备状态发生某些变化时获得通知的权限(例如网络状态)。
对于以上这些想请求的每个权限,你都要向应用的AndroidManifest.xml文件中添加使用权限(uses-permission)元素
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.android.soonami">
<uses-permission android:name="android.permission.INTERNET"/>
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
Android应用程序权限具有不同的保护级别,需要了解的两个最重要的级别是正常和危险级别。
正常权限不会对用户隐私或者其他应用的操作构成威胁,因此系统将自动批准这些权限。危险权限会访问用户的个人身份信息或者私人信息、并且会访问可能影响其他应用操作方式的功能,其中包括使用照相机、访问联系人或者通话记录或者通过麦克风录音,运行这些程序前必须先进行请求,用户必须通过系统对话明确授权。
注意,如果用户拒绝了权限请求,应用应仍然继续,如常运行,只是不具有该功能。
Android6.0之后提示都改成了运行时询问权限了,