`
夏文权
  • 浏览: 242156 次
  • 性别: Icon_minigender_1
  • 来自: 贵州
社区版块
存档分类
最新评论

Android开发之APN网络切换(转载)

 
阅读更多
写道
本文介绍Android平台中关于APN网络切换的相关知识以及如何实现APN切换。

由于最近的项目中用到APN切换的功能,所以就借着这个机会介绍一下APN的相关知识及如何在Android实现切换过程。关于APN的基本知识我会在下面给大家介绍。


当我们点击"编辑APN内容"时出现右边的图示效果,我们可以对APN的内容进行编辑,这是在我们的"河南移动专网"APN选项已经存在时显示如右边的图示效果。如果"河南移动专网"APN选项不存在,那么第一次点击"编辑APN内容"时会出现如左边下方显示的Toast提示,需要再次点击"编辑APN内容"才可以进行编辑。



  下面来看下关于APN的基础知识:

  APN(Access Point Name),即“接入点名称”,用来标识GPRS的业务种类,目前分为两大类:CMWAP(通过GPRS访问WAP业务)、CMNET(除了WAP以外的服务目前都用CMNET,比如连接因特网等)。


  APN的英文全称是Access Point Name,中文全称叫接入点,是您在通过手机上网时必须配置的一个参数,它决定了您的手机通过哪种接入方式来访问网络。


  移动手机的默认上网配置有两种:CMWAP和CMNET。一些使用移动办公的大客户,通常会使用专用APN,其接入点随意定义,只要和该省运营商其他APN不冲突即可。


  CMWAP也叫移动梦网,通过该接入点可接入一个比较大的移动私网,网内有大量的手机应用下载及资源访问。因为CMWAP不接入互联网,只接入移动运营商的私网,所以流量费用比较低廉。


  CMNET也叫GPRS连接互联网,通常每个省的运营商会提供若干个Internet出口以供CMNET拨号用户使用。其流量费用较CMWAP要高一些。


  目前国内销售的手机,如果是非智能机,通常已配置好CMWAP连接,智能机通常会配置CMWAP和CMNET连接。如需手动添加这些配置,请参考手机说明书。


  专有APN在功能上可以和Internet的VPN做类比,实际上他就是基于GPRS的VPN网络。


  专有APN常见组网方式
  1,运营商部署一条专线接入到企业的网络中,局端和企业端路由器之间采用私有IP进行连接。


  2,局端互连路由器与GGSN采用GRE隧道连接。


  专有APN的几个重要特点:
  1,除非运营商分配一个Internet IP地址,否则计算机没有任何办法通过Internet访问该APN中的主机。


  2,只有手机卡号在APN中的白名单之列,该手机才可以接入该APN。



  3,企业客户可以建立一套RADIUS和DHCP服务器,GGSN向RADIUS服务器提供用户主叫号码,采用主叫号码和用户账号相结合的认证方式;用户通过认证后由DHCP服务器分配企业内部的静态IP地址。补充:该认证方式不一定适合于每个省的运营商,这取决于该省运营商的APN管理平台。


  GPRS专网系统终端上网登录服务器平台的流程为:
  1)用户发出GPRS登录请求,请求中包括由运营商为GPRS专网系统专门分配的专网APN;


  2)根据请求中的APN,SGSN向DNS服务器发出查询请求,找到与企业服务器平台连接的GGSN,并将用户请求通过GTP隧道封装送给GGSN;


  3)GGSN将用户认证信息(包括手机号码、用户账号、密码等)通过专线送至Radius进行认证;


  4)Radius认证服务器看到手机号等认证信息,确认是合法用户发来的请求,向DHCP服务器请求分配用户地址;


  5)Radius认证通过后,由Radius向GGSN发送携带用户地址的确认信息;


  6)用户得到了IP地址,就可以携带数据包,对GPRS专网系统信息查询和业务处理平台进行访问。



  以上是关于APN的一些基础知识。

对于Android APN接入点相关的开发,有一个不错的开源项目APNDroid的源代码本地下载,里面包含了一个不错的Widget框架,大家可以通过APNDroid 源码学习到有关接入点的相关问题,可以解决GPRS,尤其是国内的CMNET、CMWAP的切换和管理。工程API Level为3,可以运行在Android 1.5或更高的版本上。(下载地址:http://files.cnblogs.com/hanyonglu/AndroidFile/apndroid.zip)



本demo下载地址:http://files.cnblogs.com/hanyonglu/AndroidFile/MyApnDemo.rar

最后,转载地址:http://www.cnblogs.com/hanyonglu/archive/2012/03/29/2423298.html  。


 

分享到:
评论

相关推荐

    Android开发之系统信息【5】——获取APN列表

    Android 系统中对于 APN 的网络 API 没有公开,但是我们可以通过阅读源代码,然后进行数据库操作,系统会自动监听数据库的变化,从而实现开启或者关闭 APN。 APN(Access Point Name)是移动网络上的一个概念,指的...

    android中的APN开发

    总之,"MyApnDemo"项目提供了一个学习和实践Android APN开发的平台,帮助开发者理解和掌握如何在Android系统中控制网络连接的配置,这对于开发涉及网络通信的应用尤其有用。通过深入理解这一过程,开发者可以创建出...

    android 全面解析apn

    Android 全面解析 APN APN(Access Point Name)是 GPRS 背bone 中的一个参考点,指向一个 GGSN(Gateway GPRS Support Node)。GGSN 是一个核心网络设备,负责将用户的数据流量转发到互联网上。APN 是一个字符串,...

    android apn切换程序

    综上所述,"Android APN切换程序"是一个实用工具,它简化了Android设备上APN设置的管理,而压缩包中的文件则反映了该程序的开发结构和文档资料。对于Android用户和开发者来说,了解并掌握APN设置和此类工具的使用,...

    android手机APN设置

    Android 手机中的 APN 设置是指在 Android 手机中设置移动网络的访问点名称,以便手机可以连接移动网络并进行上网、发送 MMS 等操作。 Android 手机 APN 设置的步骤: 1. 打开主菜单并点击“Settings”图标,在...

    Android APN开发流程分析.doc

    Android APN 开发流程分析 Android APN 开发流程分析是指 Android 操作系统中数据连接的实现过程,主要涉及到数据连接的建立、维护和管理。以下是 Android APN 开发流程分析的关键知识点: 1. 数据连接流程分析 ...

    android APN开发流程

    ### Android APN开发流程详解 #### 一、数据连接机制概览 Android设备的数据连接机制主要依赖于PPP(Point-to-Point Protocol)协议,这是一套用于在点对点链路上进行数据传输的标准协议,适用于拨号电话、ISDN、X....

    Android端APN实现module

    在Android系统中,APN(Access Point Name)是用于设置移动数据网络连接的关键参数,它定义了设备如何连接到互联网,通常包括网络运营商、数据服务类型等信息。本模块主要探讨的是如何在Android应用程序中通过代码来...

    Android的APN开发源码分析

    ### Android的APN开发源码分析 #### 一、Android数据连接原理 Android的数据连接机制主要是基于PPP(Point-to-Point Protocol)的方式实现的。PPP协议是一种广泛使用的串行链路通信协议,它允许用户通过拨号或其他...

    android APN 设置

    在特定场景下,例如开发涉及网络通信的应用或者需要在代码中动态切换网络模式时,理解并操作APN就显得尤为重要。 `android APN 设置`这个主题涉及到的主要知识点包括: 1. **APN概念**:APN是移动设备连接到GPRS或...

    Android AT命令与APN开发流程分析

    Android AT命令与APN开发流程分析

    设置APN节点,并切换到当前节点

    本项目中,我们关注的重点是如何在Android系统中设置APN,并且实现APN节点的切换,这对于网络服务的提供,特别是在企业级项目中,具有重要的实用价值。 首先,我们要理解APN的作用。APN包含了运营商信息、数据类型...

    [Mark安卓教程]Android手机修改APN不保存解决办法.pdf

    当Android手机出现无法修改或保存APN设置的情况时,原因往往在于系统默认的APN配置与目标网络环境存在差异。例如,当使用了国外运营商定制的ROM时,其内置的APN配置可能与国内运营商的要求不符,导致用户自定义的APN...

    android widget GRRS/3G(APN)上网开关

    本教程将聚焦于创建一个GRRS/3G(GPRS/EDGE和3G网络)APN(Access Point Name,接入点名称)上网开关的Android小部件。这个小部件允许用户快速切换移动数据连接,对于经常需要控制数据流量的用户非常实用。 首先,...

    android 设置apn

    在Android系统中,APN(Access Point Name)是用于配置移动数据网络连接的重要设置,它定义了设备如何连接到互联网,特别是通过蜂窝数据。APN设置包括运营商、用户名、密码、代理服务器、端口等信息,对于使用特定...

    Android APN文件装换为windowsphones8 APN文件

    在Android系统中,用户可以通过设置手动添加或修改APN来适应不同运营商的网络需求。然而,Windows Phone 8系统的APN配置方式与Android略有区别,且不支持直接导入APN文件,通常需要用户逐个输入相关参数。 标题所...

    android判断网络状态、网络运营商、网络类型

    在Android开发中,掌握如何判断网络状态、获取网络运营商以及识别网络类型是非常关键的技能,这对于构建具有网络功能的应用程序至关重要。以下将详细介绍这些知识点。 首先,**判断网络状态**是确保应用程序能够...

    android 基于基站,apn,gps,wifi,network 根据不同手机sim卡获取经纬度

    4. **APN(接入点名称)**:虽然APN主要用于设置移动数据连接,但有时也可以作为辅助信息帮助定位,例如通过判断用户使用的运营商和网络类型。 5. **网络定位(Network Provider)**:结合基站和WiFi信息进行定位,...

    Android开发之系统信息【3】——获取Android网络连接信息

    在Android开发中,获取系统信息是一项重要的任务,特别是在涉及到网络应用时。本篇文章将深入探讨如何获取Android设备的网络连接信息,以便于开发者能够判断网络的状态、类型,并根据这些信息来优化应用程序的功能。...

    AS 工程自定义 APN 实现.rar

    在实际开发过程中,这个项目可以作为参考,帮助开发者了解如何在Android应用中自定义和管理APN连接,从而实现更灵活的网络连接控制。同时,要注意安全性和稳定性,确保修改APN不会影响用户的正常网络使用。

Global site tag (gtag.js) - Google Analytics