`

Android APN设置及获得手机号(转载)

阅读更多

目前供职于电信,只做电信的业务,故列表中只有电信的APN信息

 

Java代码
/**
* 电信APN列表
* @author wudongdong
*
*/  
public class APNNET {   
    public static String CTWAP="ctwap";   
    public static String CTNET="ctnet";   
}  
/**
 * 电信APN列表
 * @author wudongdong
 *
 */
public class APNNET {
 public static String CTWAP="ctwap";
 public static String CTNET="ctnet";
}获得APN的类型

Java代码
/**
* 获得APN类型
* @author wudongdong
*
*/  
public class ApnUtil {   
    private static Uri PREFERRED_APN_URI = Uri   
     .parse("content://telephony/carriers/preferapn");   
    /**
      * get apntype
      * @param context
      * @return
      */  
    public static String getApnType(Context context){   
         String apntype="nomatch";   
         Cursor c = context.getContentResolver().query(PREFERRED_APN_URI,   
                null, null, null, null);   
         c.moveToFirst();   
         String user=c.getString(c.getColumnIndex("user"));   
        if(user.startsWith(APNNET.CTNET)){   
             apntype=APNNET.CTNET;   
         }else if(user.startsWith(APNNET.CTWAP)){   
             apntype=APNNET.CTWAP;   
         }   
        return apntype;   
     }   
}  
/**
 * 获得APN类型
 * @author wudongdong
 *
 */
public class ApnUtil {
 private static Uri PREFERRED_APN_URI = Uri
 .parse("content://telephony/carriers/preferapn");
 /**
  * get apntype
  * @param context
  * @return
  */
 public static String getApnType(Context context){
  String apntype="nomatch";
  Cursor c = context.getContentResolver().query(PREFERRED_APN_URI,
    null, null, null, null);
  c.moveToFirst();
  String user=c.getString(c.getColumnIndex("user"));
  if(user.startsWith(APNNET.CTNET)){
   apntype=APNNET.CTNET;
  }else if(user.startsWith(APNNET.CTWAP)){
   apntype=APNNET.CTWAP;
  }
  return apntype;
 }
}
获得手机号码的话可以传IMSI码到指定接口,接口地址不方便说。

但可以透露一点,必须走CTWAP,这也是判断APN类型的原因

发现很多应用如果APN是走代理的话就不能联网,那么再介绍一下用APN设置网络的代理信息。

Java代码
Cursor c = context.getContentResolver().query(PREFERRED_APN_URI,   
                    null, null, null, null);   
             c.moveToFirst();   
             String proxy=c.getString(c.getColumnIndex("proxy"));   
            if (!"".equals(proxy) && proxy!=null) {   
                 Properties prop = System.getProperties();   
                 System.getProperties().put("proxySet", "true");   
                 prop.setProperty("http.proxyHost", c.getString(c   
                         .getColumnIndex("proxy")));   
                 prop.setProperty("http.proxyPort", c.getString(c   
                         .getColumnIndex("port")));   
                 String authentication = c.getString(c.getColumnIndex("user"))   
                         + ":" + c.getString(c.getColumnIndex("password"));   
                 String encodedLogin = Base64.encode(authentication);   
                 uc.setRequestProperty("Proxy-Authorization", " Basic "  
                         + encodedLogin);   
             }   
             c.close(); 

分享到:
评论

相关推荐

    android手机APN设置

    Android 手机 APN 设置 APN(Access Point Name)是移动网络中的一个重要概念,它是指移动网络中的一个访问点名称,用于标识移动网络中的一个访问点。Android 手机中的 APN 设置是指在 Android 手机中设置移动网络...

    android APN 设置

    在Android系统中,APN(Access Point Name)是设置数据连接的关键配置,它定义了设备如何连接到互联网或移动数据网络。APN包含了运营商提供的网络接入点信息,比如网络类型(2G、3G、4G、5G)、用户名、密码、服务器...

    android apn设置 A20 A83 RK3288 验证通过

    在Android系统中,APN(Access Point Name,接入点名称)是用于移动设备连接网络的重要配置,它定义了手机如何连接到互联网,包括使用的网络类型(如GPRS、3G、4G或5G)、数据服务提供商以及相关认证信息。...

    android 设置apn

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

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

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

    android中的APN开发

    本项目"android中的APN开发"显然是一个教学或示例应用,名为"MyApnDemo",旨在教给开发者如何在Android平台上创建、修改和管理APN设置。通过这个应用,开发者可以学习如何编写代码来实现以下功能: 1. **读取APN...

    android apn切换程序

    在Android系统中,APN设置用于定义数据连接的类型、网络速度、安全设置等,比如2G、3G、4G或5G的数据连接,以及是否启用彩信和互联网服务。在某些情况下,用户可能需要手动切换APN以优化网络性能或者解决特定服务的...

    Android端APN实现module

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

    android 全面解析apn

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

    Android APN开发流程分析.doc

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

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

    Android 获取 APN 列表的系统信息 Android 系统中对于 APN 的网络 API 没有公开,但是我们可以通过阅读源代码,然后进行数据库操作,系统会自动监听数据库的变化,从而实现开启或者关闭 APN。 APN(Access Point ...

    (安卓)Android获取本机手机号及服务运营商

    本文将详细介绍如何在Android应用中获取本机手机号及服务运营商。 首先,获取本机手机号码通常需要权限声明。在AndroidManifest.xml文件中添加以下权限: ```xml <uses-permission android:name="android....

    获取和修改手机当前APN

    在 Android 系统中,APN(Access Point Name)是手机上网时必须配置的一个参数,它决定了手机通过哪种接入方式来访问网络。APN 保存在数据库中,数据库绝对路径为 `/data/data/...

    Android APN文件装换为windowsphones8 APN文件

    由于Android的APN配置信息存储在一个文本文件中,通常命名为“apn.conf”或“apns-conf.xml”,而WP8系统则需要在系统设置内手动创建每个APN条目,这在APN数量众多的情况下非常不便。因此,有一个工具或方法能将...

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

    不同的运营商可能有不同的APN设置,用户通常可以在手机的设置中手动调整,但通过小部件实现一键切换则更加便捷。 创建这样的小部件,我们首先需要在Android Studio中创建一个新的Android项目,选择“App Widget”...

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

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

    Android的APN开发源码分析

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

    Android基于APN获取手机号的方法

    本文实例讲述了Android基于APN获取手机号的方法。分享给大家供大家参考。具体如下: 之前很多人说无法完全获取手机号,是因为现在有的卡不能获取,有的卡能获取,现在我们可以换一种思路来考虑问题,就是用APN的方式...

Global site tag (gtag.js) - Google Analytics