需要个网站,网络公司是干什么工作的,外协加工订单网,WordPress微信推广返佣安卓手机APP开发__网络连接性支持VPN
安卓提供了API给开发者,来创建一个虚拟的私有网络(VPN)的解决方案. 根据这里的介绍,你能知道如何开发和测试你的针对安卓设备的VPN的客户端.
概述
VPN允许设备为了安全地连接网络,而没有物理性的连接在一个网络上.
安卓包括了一个内嵌的…安卓手机APP开发__网络连接性支持VPN
安卓提供了API给开发者,来创建一个虚拟的私有网络(VPN)的解决方案. 根据这里的介绍,你能知道如何开发和测试你的针对安卓设备的VPN的客户端.
概述
VPN允许设备为了安全地连接网络,而没有物理性的连接在一个网络上.
安卓包括了一个内嵌的(PPTP 和 L2TP/IPSec)VPN客户端,它有时也叫 legacy VPN. 安卓4.0(API级别是14)引入了API,让APP的开发者能够提供 他们自己的VPN解决方案.你打包你的VPN解决方案进入你的APP。开发者 通常构建一个VPN的APP是因为如下理由之一
提供内嵌的客户端不支持的VPN协议 帮助用户更容易地连接到VPN服务。
接下来解释如何开发VPN的APP不包括内嵌的VPN客户端。
用户体验
安卓提供了一个用户界面帮助用户配置和开启和停止你的VPN解决方案。系统的用户界面 也让人能够使用设备连接一个活跃的VPN连接。安卓显示了VPN连接的如下的用户组件
在一个VPN的APP首次激活之前系统显示了一个连接请求对话框。对话框提示 用户使用设备时确认他们信任VPN并且接受请求。 VPN的设置屏幕设置〉网络互联网〉VPN显示了用户接受的连接请求的是哪一个 VPN的APP。这里有一个按钮是配置系统选项或者是忘记VPN。 当一个连接是活跃的时候快速配置显示了一个信息面板。触摸标签显示一个对话框 有更多的信息和对一个链接的设置. 在状态栏包括了一个VPN的图标来显示一个活跃的连接。
你的APP也需要提供一个用户界面让用户使用设备来配置你的服务的选项。 例如你的解决方案可能需要捕捉帐户的授权设置。APP应该显示如下的用户界面
控制手动地开启和停止一个连接。当需要的时候总是在线的VPN能够连接. 但是在用户第一次使用VPN时允许用户配置连接.
当服务活跃的时候有一个非打扰的通知。通知能显示连接状态或者是提供网络统计信息 的更多的内容。触摸通知让你的APP来到前台。当服务变成不活跃时移除通知。 VPN服务
你的APP为了一个用户连接系统网络到一个VPN的网关。每个用户能运行一个不同的VPN的 APP。你创建一个VPN服务系统使用这个服务来启动和停止你的VPN并且跟踪连接的状态 你的VPN服务是从VpnService继承下来的。
服务作为你的VPN的网络连接的容器和它们的本地的设备的接口。你的服务的实例 调用了VpnService.Builder方法来建立一个新的本地接口。
你的APP把如下的数据从连接的设备传到VPN的网关
从本地的接口读取要转出的IP的数据包加密它们把它们发送给VPN网关。 从本的的接口写入要进入的数据包从VPN网关接收并且解密
重要的提示信息当和VPN的网关进行交换数据包时你的APP必须使用强加密手段
对于一个用户而言仅有一个活跃的服务。开始一个新的服务自动地停止原有的服务。 添加一个服务
为了在你的APP中添加一个VPN服务创建一个安卓服务它是继承于VpnService。 在你的配置文件中声明一个VPN服务。内容如下
使用BIND_VPN_SERVICE权限来保护服务这样仅有系统能绑定到你的服务。 使用android.net.VpnService过滤器来广播你的服务让系统能找到你的服务。
这个例子显示了你能在一个配置文件中如何声明一个服务
service android:name.MyVpnServiceandroid:permissionandroid.permission.BIND_VPN_SERVICEintent-filteraction android:nameandroid.net.VpnService//intent-filter
/service
现在你的APP声明了一个服务系统能自动地根据需要启动和停止你的APP的VPN的服务。 例如当运行着总是在线的VPN时系统控制着你的服务。 准备一个服务
为了准备APP变成用户的当前的VPN服务调用VpnService.prepare()。 如果用户使用设备没有对你的APP授予权限这个方法返回一个活动的凭证 你能使用这个凭证来开启一个系统的活动这个活动来向用户请求权限。 系统显示一个对话框这与其它的权限对话框是类似的例如照相机或者 通讯录读取。如果你的APP已经准备好了方法就返回一个空值。
仅有一个APP能成为当前已经准备好的VPN服务。总是要调用VpnService.prepare()方法 因为一个用户可能设置一个不同的APP作为VPN的服务。为了了解更多的内容看服务生命 周期部分。